.course-pipe{
  --forest:#142319;
  --forest-2:#1d3226;
  --canvas:#edf3f6;
  --paper:#fbf8f1;
  --white:#ffffff;
  --ink:#18232d;
  --dim:rgba(24,35,45,.6);
  --line:rgba(24,35,45,.14);
  --coral:#df5130;
  --green:#2f7d57;
  --blue:#48688c;
  --tint:#df5130;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
}
.course-pipe{
  font-family:-apple-system,"PingFang SC",sans-serif;
  color:var(--ink);
  background:var(--canvas);
  font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
.course-pipe a{color:inherit;text-decoration:none}
.course-pipe .mono{font-family:var(--mono)}
.course-pipe .wrap{max-width:1120px;margin:0 auto;padding:0 28px}
.course-pipe img{max-width:100%}
.course-pipe .hero{
  background:
    linear-gradient(rgba(20,35,25,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(20,35,25,.035) 1px,transparent 1px),
    var(--paper);
  background-size:24px 24px,24px 24px,auto;
  border-bottom:1px solid var(--line);
  padding:44px 0 0;
}
.course-pipe .crumb{font-family:var(--mono);font-size:12px;color:var(--dim);display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.course-pipe .crumb a:hover{color:var(--coral)}
.course-pipe .crumb .tno{color:var(--tint);font-weight:700}
.course-pipe .crumb .live{color:var(--green)}
.course-pipe .crumb .live::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:5px;vertical-align:1px}
.course-pipe .hero h1{font-size:34px;line-height:1.32;letter-spacing:.01em;margin:14px 0 14px;max-width:760px}
.course-pipe .hook{font-size:16px;color:var(--ink);max-width:680px;margin-bottom:18px}
.course-pipe .hook b{color:var(--coral)}
.course-pipe .meta{display:flex;flex-wrap:wrap;gap:8px 0;align-items:center;font-family:var(--mono);font-size:12px;color:var(--dim);margin-bottom:26px}
.course-pipe .meta span{display:inline-flex;align-items:center}
.course-pipe .meta span+span::before{content:"·";margin:0 12px;color:var(--line)}
.course-pipe .meta .free-n{color:var(--green);font-weight:700}
.course-pipe .cta-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.course-pipe .btn{
  display:inline-block;background:var(--coral);color:#fff;font-weight:700;font-size:16px;
  padding:13px 26px;border-radius:10px;box-shadow:0 2px 0 rgba(24,35,45,.18);
  transition:transform .12s ease,box-shadow .12s ease;
}
.course-pipe .btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(223,81,48,.32)}
.course-pipe .cta-note{font-size:14px;color:var(--dim)}
.course-pipe .shelf{margin-top:40px;padding-bottom:34px}
.course-pipe .shelf-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.course-pipe .shelf-head .lb{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--tint);font-weight:700}
.course-pipe .shelf-head .hint{font-size:14px;color:var(--dim)}
.course-pipe .rail{
  display:grid;grid-template-columns:repeat(8,1fr);gap:10px;
  border-bottom:2px solid rgba(24,35,45,.22);padding-bottom:0;
}
.course-pipe .tile{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:14px 6px 12px;background:var(--white);
  border:1px solid var(--line);border-bottom:none;border-radius:8px 8px 0 0;
  text-align:center;position:relative;
  transition:transform .12s ease,border-color .12s ease;
}
.course-pipe .tile:hover{transform:translateY(-3px);border-color:var(--coral)}
.course-pipe .tile .t-no{font-family:var(--mono);font-size:12px;color:var(--dim);position:absolute;top:8px;left:10px}
.course-pipe .tile .t-lb{font-size:14px;font-weight:600;line-height:1.35}
.course-pipe .tile .t-st{font-family:var(--mono);font-size:12px;color:var(--dim)}
.course-pipe .tile:hover .t-st{color:var(--coral)}
.course-pipe .icn{width:46px;height:36px;position:relative;margin-top:10px;flex:none}
.course-pipe .icn i{position:absolute}
.course-pipe .icn-sheet i.f{inset:0;border:1.5px solid var(--ink);border-radius:3px;background:var(--white)}
.course-pipe .icn-sheet i.hd{top:0;left:0;right:0;height:8px;border-bottom:1.5px solid var(--ink);background:rgba(47,125,87,.22);border-radius:2px 2px 0 0}
.course-pipe .icn-sheet i.v1{top:8px;bottom:0;left:14px;width:1.5px;background:rgba(24,35,45,.22)}
.course-pipe .icn-sheet i.v2{top:8px;bottom:0;left:29px;width:1.5px;background:rgba(24,35,45,.22)}
.course-pipe .icn-sheet i.h1{top:17px;left:0;right:0;height:1.5px;background:rgba(24,35,45,.22)}
.course-pipe .icn-sheet i.h2{top:26px;left:0;right:0;height:1.5px;background:rgba(24,35,45,.22)}
.course-pipe .icn-sheet i.c1{top:20px;left:17px;width:9px;height:4px;background:var(--coral)}
.course-pipe .icn-perm i.f{inset:0;border:1.5px solid var(--ink);border-radius:3px;background:var(--white)}
.course-pipe .icn-perm i.r1{top:7px;left:6px;width:20px;height:2.5px;background:rgba(24,35,45,.3)}
.course-pipe .icn-perm i.r2{top:15px;left:6px;width:20px;height:2.5px;background:rgba(24,35,45,.3)}
.course-pipe .icn-perm i.r3{top:23px;left:6px;width:20px;height:2.5px;background:rgba(24,35,45,.3)}
.course-pipe .icn-perm i.k1{top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.course-pipe .icn-perm i.k2{top:13px;right:5px;width:7px;height:7px;border-radius:50%;background:rgba(24,35,45,.18)}
.course-pipe .icn-perm i.k3{top:21px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--coral)}
.course-pipe .icn-md{width:30px}
.course-pipe .icn-md i.f{inset:0;border:1.5px solid var(--ink);border-radius:3px;background:var(--white)}
.course-pipe .icn-md i.fold{top:-1px;right:-1px;width:10px;height:10px;background:var(--canvas);border-left:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.course-pipe .icn-md i.tx{bottom:4px;left:0;right:0;font-family:var(--mono);font-size:9px;font-weight:700;text-align:center;color:var(--tint);font-style:normal}
.course-pipe .icn-md i.l1{top:8px;left:5px;width:14px;height:2px;background:rgba(24,35,45,.35)}
.course-pipe .icn-md i.l2{top:12px;left:5px;width:18px;height:2px;background:var(--blue)}
.course-pipe .icn-agents i.a{top:3px;width:12px;height:30px;border:1.5px solid var(--ink);border-radius:2px;background:var(--white)}
.course-pipe .icn-agents i.a1{left:0}
.course-pipe .icn-agents i.a2{left:16px;top:0;height:36px;background:var(--paper)}
.course-pipe .icn-agents i.a3{left:32px}
.course-pipe .icn-win i.f{inset:0;border:1.5px solid var(--ink);border-radius:3px;background:var(--paper)}
.course-pipe .icn-win i.b{top:0;left:0;right:0;height:9px;border-bottom:1.5px solid var(--ink);background:rgba(24,35,45,.08);border-radius:2px 2px 0 0}
.course-pipe .icn-win i.l1{top:15px;left:6px;width:22px;height:2.5px;background:rgba(24,35,45,.4)}
.course-pipe .icn-win i.l2{top:21px;left:6px;width:30px;height:2.5px;background:var(--coral)}
.course-pipe .icn-win i.l3{top:27px;left:6px;width:16px;height:2.5px;background:rgba(24,35,45,.25)}
.course-pipe .icn-book{width:38px}
.course-pipe .icn-book i.s1{top:5px;left:3px;width:28px;height:29px;border:1.5px solid var(--ink);border-radius:2px;background:var(--paper);transform:rotate(-7deg)}
.course-pipe .icn-book i.s2{top:3px;left:8px;width:28px;height:29px;border:1.5px solid var(--ink);border-radius:2px;background:var(--white);transform:rotate(4deg)}
.course-pipe .icn-book i.s3{top:1px;left:5px;width:29px;height:31px;border:1.5px solid var(--ink);border-radius:2px;background:var(--white)}
.course-pipe .icn-book i.bm{top:-1px;left:23px;width:6px;height:12px;background:var(--coral)}
.course-pipe .icn-book i.l1{top:10px;left:11px;width:16px;height:2px;background:rgba(24,35,45,.35)}
.course-pipe .icn-book i.l2{top:15px;left:11px;width:12px;height:2px;background:rgba(24,35,45,.22)}
.course-pipe .icn-book i.l3{top:20px;left:11px;width:14px;height:2px;background:rgba(24,35,45,.22)}
.course-pipe .icn-clock{width:36px}
.course-pipe .icn-clock i.f{inset:0;border:1.5px solid var(--ink);border-radius:50%;background:var(--white)}
.course-pipe .icn-clock i.h{top:50%;left:50%;width:2px;height:10px;background:var(--ink);transform-origin:top center;transform:rotate(210deg)}
.course-pipe .icn-clock i.m{top:50%;left:50%;width:2px;height:13px;background:var(--coral);transform-origin:top center;transform:rotate(90deg)}
.course-pipe .icn-clock i.c{top:50%;left:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:var(--ink)}
.course-pipe .icn-folder i.tab{top:2px;left:0;width:18px;height:8px;border:1.5px solid var(--ink);border-bottom:none;border-radius:3px 3px 0 0;background:#f2d8a0}
.course-pipe .icn-folder i.f{top:8px;left:0;right:0;bottom:0;border:1.5px solid var(--ink);border-radius:0 3px 3px 3px;background:#f7e3b5}
.course-pipe .icn-folder i.chk{top:13px;left:0;right:0;font-style:normal;text-align:center;font-size:12px;font-weight:700;color:var(--green)}
.course-pipe .fitbar{background:var(--white);border-bottom:1px solid var(--line)}
.course-pipe .fitbar .wrap{display:flex;gap:0;align-items:stretch;padding-top:16px;padding-bottom:16px}
.course-pipe .fit-cell{padding:2px 26px;flex:1}
.course-pipe .fit-cell+.fit-cell{border-left:1px solid var(--line)}
.course-pipe .fit-cell:first-child{padding-left:0}
.course-pipe .fit-cell:last-child{padding-right:0}
.course-pipe .fit-lb{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--dim);display:block;margin-bottom:3px}
.course-pipe .fit-tx{font-size:14px;line-height:1.65}
.course-pipe .fit-tx .sep{color:var(--line);margin:0 8px}
.course-pipe .fit-tx b.no-need{color:var(--green)}
.course-pipe .route{padding:56px 0 40px}
.course-pipe .route-head{text-align:center;max-width:640px;margin:0 auto 30px}
.course-pipe .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--tint);font-weight:700}
.course-pipe .route-head h2,.course-pipe .bench-copy h2,.course-pipe .final-head h2,.course-pipe .cta-final h2{font-size:20px;margin:10px 0 8px;line-height:1.45}
.course-pipe .route-head p{font-size:14px;color:var(--dim)}
.course-pipe .route-flow{position:relative;padding:8px 0 0}
.course-pipe .route-flow::before{
  content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;
  background:repeating-linear-gradient(180deg,rgba(24,35,45,.28) 0 7px,transparent 7px 15px);
}
.course-pipe .rrow{display:grid;grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);padding:20px 0;position:relative}
.course-pipe .node{
  grid-column:2;grid-row:1;justify-self:center;align-self:start;margin-top:6px;
  width:15px;height:15px;border-radius:50%;background:var(--canvas);
  border:3px solid var(--ink);z-index:1;
}
.course-pipe .rrow.R .node{background:var(--canvas)}
.course-pipe .station{max-width:496px;width:100%;grid-row:1}
.course-pipe .rrow.L .station{grid-column:1;justify-self:end}
.course-pipe .rrow.R .station{grid-column:3;justify-self:start}
.course-pipe .plate{
  display:inline-flex;align-items:center;gap:4px 10px;flex-wrap:wrap;
  background:var(--forest);color:rgba(251,248,241,.94);
  border-radius:6px;padding:5px 12px;margin-bottom:12px;
  font-family:var(--mono);font-size:12px;
  box-shadow:2px 2px 0 rgba(24,35,45,.14);
}
.course-pipe .plate span{white-space:nowrap}
.course-pipe .plate .p-no{font-weight:700;letter-spacing:.08em}
.course-pipe .plate .p-info{color:rgba(251,248,241,.6)}
.course-pipe .plate.pre{background:transparent;color:var(--ink);border:1.5px dashed rgba(24,35,45,.4);box-shadow:none}
.course-pipe .plate.pre .p-info{color:var(--dim)}
.course-pipe .plate .p-free{color:#8fd3a8;font-weight:700}
.course-pipe .plate.pre .p-free{color:var(--green)}
.course-pipe .st-title{font-size:20px;line-height:1.45;margin-bottom:6px}
.course-pipe .st-dek{font-size:14px;color:var(--dim);line-height:1.7}
.course-pipe .loot{margin:16px 0 0}
.course-pipe .obj{
  background:var(--white);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 3px 14px rgba(24,35,45,.09),0 1px 0 rgba(24,35,45,.05);
  overflow:hidden;transform:rotate(-.6deg);
}
.course-pipe .rrow.R .obj{transform:rotate(.6deg)}
.course-pipe .loot .obj+.obj{margin-top:14px}
.course-pipe .loot figcaption{font-size:13px;line-height:1.65;color:var(--dim);margin-top:12px;padding-left:2px}
.course-pipe .loot figcaption b{
  display:inline-block;font-family:var(--mono);font-size:12px;color:#fff;background:var(--coral);
  border-radius:4px;padding:1px 8px;margin-right:8px;font-weight:700;vertical-align:1px;
}
.course-pipe .sh-head{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:12px;color:var(--dim);border-bottom:1px solid var(--line);padding:9px 14px;background:var(--paper)}
.course-pipe .sh-head .ok-t{color:var(--green);font-weight:700}
.course-pipe .chk,.course-pipe .runln{display:flex;align-items:center;gap:9px;padding:7px 14px;font-size:14px;border-bottom:1px dashed rgba(24,35,45,.1)}
.course-pipe .chk:last-child,.course-pipe .runln:last-child{border-bottom:none}
.course-pipe .lamp{width:9px;height:9px;border-radius:50%;background:var(--green);flex:none;box-shadow:0 0 0 3px rgba(47,125,87,.16)}
.course-pipe .chk code{font-family:var(--mono);font-size:12px;color:var(--dim)}
.course-pipe .runln{justify-content:space-between;font-family:var(--mono);font-size:12px}
.course-pipe .runln .ok-t{color:var(--green)}
.course-pipe .runln .warn-t{color:var(--coral)}
.course-pipe .xls{font-family:var(--mono);font-size:12px}
.course-pipe .xls .xrow{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1fr) 96px;align-items:center;border-bottom:1px dashed rgba(24,35,45,.1)}
.course-pipe .xls .xrow:last-child{border-bottom:none}
.course-pipe .xls .xrow>span{padding:8px 10px;min-width:0}
.course-pipe .xls .xrow>span+span{border-left:1px solid rgba(24,35,45,.08)}
.course-pipe .xls .xhead{background:var(--paper);color:var(--dim);border-bottom:1px solid var(--line)}
.course-pipe .xls .xhead>span{padding:6px 10px}
.course-pipe .xls .wln{margin:0;height:6px}
.course-pipe .xls .ok-t{color:var(--green);font-weight:700;white-space:nowrap}
.course-pipe .xls .fix-t{color:var(--coral);font-weight:700;white-space:nowrap}
.course-pipe .xls .est-t{color:var(--blue);font-weight:700;white-space:nowrap}
.course-pipe .wbar{display:flex;align-items:center;gap:5px;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 12px}
.course-pipe .wbar i{width:8px;height:8px;border-radius:50%;background:rgba(24,35,45,.18)}
.course-pipe .wbar i:first-child{background:#e0897a}
.course-pipe .wbar .mono{font-size:12px;color:var(--dim);margin-left:8px}
.course-pipe .wbody{padding:14px 16px 12px}
.course-pipe .wln{height:7px;border-radius:3px;background:rgba(24,35,45,.14);margin-bottom:8px}
.course-pipe .wln.t{height:11px;background:rgba(24,35,45,.5)}
.course-pipe .wflag{display:inline-block;font-size:12px;color:var(--coral);border:1px dashed var(--coral);border-radius:4px;padding:2px 8px;margin:2px 0 10px;background:rgba(223,81,48,.06)}
.course-pipe .wstamp{display:inline-block;font-size:12px;color:var(--green);border:1.5px solid var(--green);border-radius:4px;padding:1px 8px;transform:rotate(-2deg);font-weight:700;margin-top:2px}
.course-pipe .stack{padding:16px 16px 0;background:transparent;border:none;box-shadow:none;overflow:visible}
.course-pipe .tabs{display:flex;gap:6px;padding-left:14px}
.course-pipe .tabs span{font-family:var(--mono);font-size:12px;background:var(--paper);border:1px solid var(--line);border-bottom:none;border-radius:6px 6px 0 0;padding:4px 9px 8px;color:var(--dim);box-shadow:0 -2px 6px rgba(24,35,45,.05)}
.course-pipe .fdoc{position:relative;background:var(--white);border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 14px rgba(24,35,45,.1);padding:12px 16px 14px;margin-top:-4px}
.course-pipe .fd-name{font-size:12px;font-weight:700;color:var(--tint);border-bottom:1px solid var(--line);padding-bottom:7px;margin-bottom:8px}
.course-pipe .fd-line{font-size:14px;padding:2px 0;color:var(--ink)}
.course-pipe .fd-line span{color:var(--dim)}
.course-pipe .para{padding:14px;background:var(--paper)}
.course-pipe .rep3{display:flex;gap:10px}
.course-pipe .rep{flex:1;background:var(--white);border:1px solid var(--line);border-radius:6px;padding:8px 9px;box-shadow:0 2px 8px rgba(24,35,45,.07)}
.course-pipe .rep .mono{font-size:12px;color:var(--dim);display:block;margin-bottom:7px}
.course-pipe .rep .wln{height:5px;margin-bottom:6px}
.course-pipe .rep:nth-child(2){transform:translateY(-5px)}
.course-pipe .verdict{margin-top:11px;font-size:12px;text-align:center;color:var(--ink);border:1.5px solid var(--ink);border-radius:6px;padding:5px 8px;background:var(--white);font-weight:700}
.course-pipe .verdict em{font-style:normal;color:var(--coral)}
.course-pipe .folder{background:transparent;border:none;box-shadow:none;overflow:visible;padding-top:6px}
.course-pipe .fo-tab{display:inline-block;font-size:12px;font-weight:700;background:#f2d8a0;border:1px solid rgba(24,35,45,.35);border-bottom:none;border-radius:8px 8px 0 0;padding:4px 14px;margin-left:12px}
.course-pipe .fo-body{background:#f7e3b5;border:1px solid rgba(24,35,45,.35);border-radius:8px;box-shadow:0 3px 14px rgba(24,35,45,.12);padding:12px 16px;font-size:12px;line-height:2.05}
.course-pipe .fo-body div{border-bottom:1px dashed rgba(24,35,45,.15)}
.course-pipe .fo-body div:last-child{border-bottom:none}
.course-pipe .fo-body .ok-t{color:var(--green);font-weight:700}
.course-pipe .lessons{border-top:1px solid var(--line);margin-top:18px}
.course-pipe .lessons summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;
  padding:11px 2px;font-family:var(--mono);font-size:12px;color:var(--ink);font-weight:700;letter-spacing:.06em;
}
.course-pipe .lessons summary::-webkit-details-marker{display:none}
.course-pipe .lessons summary .plus{width:18px;height:18px;border:1.5px solid var(--ink);border-radius:5px;position:relative;flex:none;transition:transform .15s ease}
.course-pipe .lessons summary .plus::before,.course-pipe .lessons summary .plus::after{content:"";position:absolute;background:var(--ink);top:50%;left:50%}
.course-pipe .lessons summary .plus::before{width:9px;height:1.5px;margin:-.75px 0 0 -4.5px}
.course-pipe .lessons summary .plus::after{width:1.5px;height:9px;margin:-4.5px 0 0 -.75px;transition:opacity .15s ease}
.course-pipe .lessons[open] summary .plus::after{opacity:0}
.course-pipe .lessons summary:hover{color:var(--coral)}
.course-pipe .lessons summary:hover .plus{border-color:var(--coral)}
.course-pipe .lessons summary:hover .plus::before,.course-pipe .lessons summary:hover .plus::after{background:var(--coral)}
.course-pipe .lessons ol{list-style:none}
.course-pipe .lessons li{border-top:1px dashed rgba(24,35,45,.12)}
.course-pipe .lrow{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:4px 10px;align-items:baseline;padding:9px 2px;transition:background .12s ease}
.course-pipe .lrow:hover{background:rgba(223,81,48,.05)}
.course-pipe .lrow .no{font-family:var(--mono);font-size:12px;color:var(--dim)}
.course-pipe .lrow:hover .no{color:var(--coral)}
.course-pipe .lrow .ttl{font-size:14px;line-height:1.55}
.course-pipe .lrow .side{display:flex;align-items:center;gap:6px;justify-self:end}
.course-pipe .badge{font-family:var(--mono);font-size:12px;line-height:1;border:1px solid rgba(24,35,45,.28);color:var(--dim);border-radius:4px;padding:2.5px 6px;white-space:nowrap}
.course-pipe .badge.b-act{border-color:rgba(223,81,48,.55);color:var(--coral)}
.course-pipe .badge.b-chk{border-color:rgba(47,125,87,.55);color:var(--green)}
.course-pipe .badge.b-jud{border-color:rgba(72,104,140,.55);color:var(--blue)}
.course-pipe .badge.b-free{border:none;background:rgba(47,125,87,.13);color:var(--green);font-weight:700}
.course-pipe .lrow .min{font-family:var(--mono);font-size:12px;color:var(--dim);min-width:32px;text-align:right}
.course-pipe .waypoint{display:flex;justify-content:center;position:relative;padding:4px 0}
.course-pipe .wp-chip{
  display:inline-flex;align-items:center;gap:4px 9px;flex-wrap:wrap;background:var(--white);
  border:1px solid rgba(24,35,45,.22);border-radius:99px;padding:6px 16px 6px 7px;
  font-size:14px;color:var(--ink);z-index:1;box-shadow:0 2px 8px rgba(24,35,45,.08);
}
.course-pipe .wp-chip .wl{white-space:nowrap;font-weight:400}
.course-pipe .wp-chip .ct{font-family:var(--mono);font-size:12px;font-weight:700;background:var(--green);color:#fff;border-radius:99px;padding:2px 9px}
.course-pipe .wp-chip.zero .ct{background:rgba(24,35,45,.45)}
.course-pipe .wp-chip.full .ct{background:var(--coral)}
.course-pipe .wp-chip .names{color:var(--dim)}
.course-pipe .waypoint.start .wp-chip{border:none;background:var(--coral);color:#fff;padding:7px 18px;font-weight:700}
.course-pipe .waypoint.start .wp-chip .ct{background:rgba(255,255,255,.22)}
.course-pipe .bench{background:var(--forest);color:rgba(251,248,241,.92);padding:52px 0}
.course-pipe .bench .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center}
.course-pipe .bench-copy .eyebrow{color:#8fd3a8}
.course-pipe .bench-copy h2{color:#fff}
.course-pipe .bench-copy p{font-size:14px;color:rgba(251,248,241,.7);line-height:1.85}
.course-pipe .bench-copy p b{color:#fff;font-weight:600}
.course-pipe .bench-mini{
  background:var(--forest-2);border:1px solid rgba(251,248,241,.16);border-radius:12px;
  padding:8px;box-shadow:0 14px 40px rgba(0,0,0,.35);
}
.course-pipe .bm-top{display:flex;align-items:center;gap:12px;padding:7px 12px;border-bottom:1px solid rgba(251,248,241,.12);font-size:10px;color:rgba(251,248,241,.65);font-family:var(--mono)}
.course-pipe .bm-name{color:#fff;font-weight:700}
.course-pipe .bm-prog{flex:1;height:4px;border-radius:2px;background:rgba(251,248,241,.15);position:relative;overflow:hidden}
.course-pipe .bm-prog i{position:absolute;left:0;top:0;bottom:0;width:32%;background:var(--coral);border-radius:2px}
.course-pipe .bm-mid{display:grid;grid-template-columns:44px minmax(0,1fr) 118px;gap:8px;padding:10px 6px}
.course-pipe .bm-rail{display:flex;flex-direction:column;gap:7px;align-items:center;padding-top:6px}
.course-pipe .bm-rail span{font-family:var(--mono);font-size:9px;color:rgba(251,248,241,.4);width:22px;height:22px;border:1px solid rgba(251,248,241,.25);border-radius:50%;display:flex;align-items:center;justify-content:center}
.course-pipe .bm-rail span.on{background:var(--green);border-color:var(--green);color:#fff}
.course-pipe .bm-rail span.cur{background:var(--coral);border-color:var(--coral);color:#fff;font-weight:700}
.course-pipe .bm-paper{
  background:
    linear-gradient(rgba(20,35,25,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(20,35,25,.045) 1px,transparent 1px),
    var(--paper);
  background-size:14px 14px,14px 14px,auto;
  border-radius:6px;padding:14px 14px 12px;min-height:190px;
}
.course-pipe .bm-brief .wln{background:rgba(24,35,45,.16)}
.course-pipe .bm-brief .wln.t{background:rgba(24,35,45,.55)}
.course-pipe .bm-goal{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:9px 11px;margin-top:12px;box-shadow:0 2px 8px rgba(24,35,45,.08)}
.course-pipe .bm-goal .mono{display:block;font-size:9px;color:var(--coral);font-weight:700;margin-bottom:7px;letter-spacing:.1em}
.course-pipe .bm-coach{background:rgba(251,248,241,.06);border:1px solid rgba(251,248,241,.12);border-radius:6px;padding:10px}
.course-pipe .bm-ct{font-size:9px;letter-spacing:.12em;color:#8fd3a8;font-weight:700;display:block;margin-bottom:9px}
.course-pipe .bm-chk{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.course-pipe .bm-chk i{width:10px;height:10px;border:1.5px solid rgba(251,248,241,.45);border-radius:3px;flex:none}
.course-pipe .bm-chk i.done{background:var(--green);border-color:var(--green)}
.course-pipe .bm-chk .wln{flex:1;height:5px;margin:0;background:rgba(251,248,241,.22)}
.course-pipe .bm-foot{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-top:1px solid rgba(251,248,241,.12);font-family:var(--mono);font-size:10px;color:rgba(251,248,241,.6)}
.course-pipe .bm-foot .btnish{background:var(--coral);color:#fff;border-radius:4px;padding:3px 9px;font-weight:700}
.course-pipe .final{background:var(--paper);border-top:1px solid var(--line);padding:56px 0 60px}
.course-pipe .final-head{text-align:center;max-width:620px;margin:0 auto 28px}
.course-pipe .final-head p{font-size:14px;color:var(--dim)}
.course-pipe .receipt{
  max-width:720px;margin:0 auto;background:var(--white);border:1px solid var(--line);
  border-radius:12px;box-shadow:0 6px 24px rgba(24,35,45,.1);position:relative;overflow:hidden;
}
.course-pipe .receipt::before{content:"";display:block;height:6px;background:repeating-linear-gradient(90deg,var(--green) 0 18px,transparent 18px 26px)}
.course-pipe .r-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:16px 28px 12px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--dim);letter-spacing:.1em}
.course-pipe .r-head b{color:var(--ink)}
.course-pipe .r-list{list-style:none;padding:8px 28px}
.course-pipe .r-list li{display:flex;gap:13px;padding:11px 0;border-bottom:1px dashed rgba(24,35,45,.12);font-size:14px;line-height:1.7}
.course-pipe .r-list li:last-child{border-bottom:none}
.course-pipe .r-list .tick{flex:none;width:21px;height:21px;border-radius:50%;background:rgba(47,125,87,.13);color:var(--green);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:12px;margin-top:3px;font-family:var(--mono)}
.course-pipe .r-final{
  margin:6px 28px 24px;padding:15px 18px;border:1.5px dashed var(--green);border-radius:8px;
  display:flex;align-items:center;gap:18px;background:rgba(47,125,87,.05);
}
.course-pipe .r-final p{font-size:14px;line-height:1.7;flex:1}
.course-pipe .r-final p b{color:var(--green)}
.course-pipe .stamp{
  flex:none;width:74px;height:74px;border:2.5px solid var(--green);border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  color:var(--green);transform:rotate(-11deg);opacity:.9;
}
.course-pipe .stamp .s1{font-size:16px;font-weight:800;letter-spacing:.2em;text-indent:.2em}
.course-pipe .stamp .s2{font-family:var(--mono);font-size:9px;letter-spacing:.08em}
.course-pipe .cta-final{background:var(--canvas);text-align:center;padding:60px 0 68px}
.course-pipe .progress-pill{
  display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;color:var(--dim);
  border:1px solid rgba(24,35,45,.22);border-radius:99px;padding:6px 16px;background:var(--white);
}
.course-pipe .progress-pill .bar{width:120px;height:6px;border-radius:3px;background:rgba(24,35,45,.12);position:relative;overflow:hidden}
.course-pipe .progress-pill .bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--coral)}
.course-pipe .cta-final h2{margin:18px auto 8px}
.course-pipe .cta-final .sub{font-size:14px;color:var(--dim);max-width:460px;margin:0 auto 24px}
.course-pipe .cta-final .sub b{color:var(--green)}
@media (max-width:900px){
.course-pipe .wrap{padding:0 18px}
.course-pipe .hero{padding-top:32px}
.course-pipe .hero h1{font-size:26px}
.course-pipe .rail{display:flex;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}
.course-pipe .tile{min-width:104px;flex:none}
.course-pipe .fitbar .wrap{flex-direction:column;gap:12px}
.course-pipe .fit-cell{padding:0 !important}
.course-pipe .fit-cell+.fit-cell{border-left:none;border-top:1px solid var(--line);padding-top:12px !important}
.course-pipe .route-flow::before{left:19px;margin-left:0}
.course-pipe .rrow{display:block;padding:16px 0 16px 46px;position:relative}
.course-pipe .node{position:absolute;left:19px;top:22px;transform:translateX(-50%);margin:0}
.course-pipe .rrow.L .station,.course-pipe .rrow.R .station{max-width:none}
.course-pipe .obj,.course-pipe .rrow.R .obj{transform:none}
.course-pipe .waypoint{justify-content:flex-start;padding-left:46px}
.course-pipe .waypoint.start{padding-left:0;justify-content:flex-start}
.course-pipe .waypoint.start .wp-chip{margin-left:0}
.course-pipe .bench .wrap{grid-template-columns:1fr;gap:28px}
.course-pipe .bm-mid{grid-template-columns:30px minmax(0,1fr) 84px}
.course-pipe .bm-rail span{width:18px;height:18px;font-size:8px}
.course-pipe .r-head,.course-pipe .r-list{padding-left:18px;padding-right:18px}
.course-pipe .r-final{margin-left:18px;margin-right:18px}
.course-pipe .lrow{grid-template-columns:36px minmax(0,1fr)}
.course-pipe .lrow .side{grid-column:2;justify-self:start;padding-top:2px}
.course-pipe .rep3{flex-wrap:nowrap}
.course-pipe .xls .xrow{grid-template-columns:56px minmax(0,1fr) minmax(0,1fr) 88px}
}

/* ============ 站点整合补充（模板专属，非原型提取） ============ */
/* 战利品架：列数随件数自适应（8 件时与原型 repeat(8,1fr) 等宽） */
.course-pipe .rail{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}
/* 课时行接入 app.js 进度契约：l-check 勾选格 + 四列网格 */
.course-pipe .lrow{grid-template-columns:18px 40px minmax(0,1fr) auto;border-top:0}
.course-pipe .l-check{width:15px;height:15px;border-radius:4px;border:1.5px solid rgba(24,35,45,.32);flex:none;display:inline-flex;align-items:center;justify-content:center;align-self:center;background:var(--white)}
.course-pipe .lrow.is-done .l-check{background:var(--green);border-color:var(--green)}
.course-pipe .lrow.is-done .ttl{color:var(--dim)}
.course-pipe .lrow.is-soon{opacity:.55}
.course-pipe .lrow.is-soon .l-check{border-style:dashed}
/* 终端窗实物卡（原型没有的第 8 种 kind） */
.course-pipe .obj.term{background:var(--forest);border-color:rgba(24,35,45,.4)}
.course-pipe .term .wbar{background:var(--forest-2);border-bottom:1px solid rgba(251,248,241,.14)}
.course-pipe .term .wbar .mono{color:rgba(251,248,241,.62)}
.course-pipe .term .tbody{padding:14px 16px 12px;font-family:var(--mono);font-size:12px}
.course-pipe .term .tln{display:flex;align-items:center;gap:9px;padding:4px 0}
.course-pipe .term .tln .wln{flex:1;margin:0;background:rgba(251,248,241,.2)}
.course-pipe .term .tp,.course-pipe .term .tbody .ok-t{color:#8fd3a8;font-weight:700}
/* 终端小图标 */
.course-pipe .icn-term i.f{inset:0;border:1.5px solid var(--ink);border-radius:3px;background:var(--forest)}
.course-pipe .icn-term i.c1{top:11px;left:7px;width:8px;height:2px;background:#8fd3a8;transform:rotate(45deg)}
.course-pipe .icn-term i.c2{top:17px;left:7px;width:8px;height:2px;background:#8fd3a8;transform:rotate(-45deg)}
.course-pipe .icn-term i.l1{top:15px;left:20px;width:14px;height:2px;background:rgba(251,248,241,.55)}
.course-pipe .icn-term i.l2{top:25px;left:8px;width:18px;height:2px;background:rgba(251,248,241,.3)}
/* 重制课诚实提示块 */
.course-pipe .rebuild-strip{background:var(--paper);border-bottom:1px solid var(--line)}
.course-pipe .pipe-rebuild{border:1.5px dashed #a9791d;background:rgba(169,121,29,.08);border-radius:10px;padding:16px 20px;margin:22px 0}
.course-pipe .pipe-rebuild strong{color:#8a6215;font-size:15px}
.course-pipe .pipe-rebuild p{font-size:14px;color:var(--dim);margin-top:6px;line-height:1.85}
.course-pipe .pipe-rebuild a{color:var(--coral);font-weight:700;text-decoration:underline;text-underline-offset:3px}
/* 收尾进度环卡（沿用 app.js .progress-card 契约，外观按流水线语言重排） */
.course-pipe .progress-card{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;max-width:640px;margin:0 auto 28px;background:var(--white);border:1px solid rgba(24,35,45,.22);border-radius:12px;padding:16px 22px;box-shadow:0 2px 8px rgba(24,35,45,.08);text-align:left}
.course-pipe .progress-card>div{display:flex;align-items:center;gap:14px}
.course-pipe .progress-card>p{flex:1;min-width:200px;font-size:13px;color:var(--dim);line-height:1.7;margin:0}
.course-pipe .ring-wrap{position:relative;display:inline-flex;width:46px;height:46px;flex:none}
.course-pipe .ring-txt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--dim)}
.course-pipe .progress-txt b{display:block;font-size:14px;line-height:1.5}
.course-pipe .progress-nums{font-family:var(--mono);font-size:12px;color:var(--dim)}
.course-pipe .studio-progress-link{font-family:var(--mono);font-size:12px;color:var(--coral);font-weight:700;white-space:nowrap}
.course-pipe .cta-final .sub a{color:var(--coral);text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){
  .course-pipe .lrow{grid-template-columns:18px 36px minmax(0,1fr)}
  .course-pipe .lrow .side{grid-column:3;justify-self:start;padding-top:2px}
  .course-pipe .progress-card{padding:14px 16px}
}

/* ============ 深夜工坊：暗色适配 ============
   规则同 home.css 先例：画布/白卡随 html.dark 翻转，
   纸质实物卡（战利品 tile、.obj、收据、工作纸）保持暖纸+墨字。 */
html.dark .course-pipe{
  --canvas:#16130f;
  --paper:#1d1913;
  --white:#241f18;
  --ink:#ece7dc;
  --dim:rgba(236,231,220,.58);
  --line:rgba(236,231,220,.16);
  --coral:#e8613f;
}
/* 纸质实物：钉回暖纸+墨字（内部硬编码 rgba(24,35,45,*) 线条依赖亮底） */
html.dark .course-pipe .tile,
html.dark .course-pipe .obj,
html.dark .course-pipe .receipt,
html.dark .course-pipe .bm-paper{
  --white:#ffffff;--paper:#fbf8f1;--canvas:#edf3f6;
  --ink:#18232d;--dim:rgba(24,35,45,.6);--line:rgba(24,35,45,.14);
  --coral:#df5130;--green:#2f7d57;--blue:#48688c;--tint:#df5130;
  color:var(--ink);
}
html.dark .course-pipe .obj{box-shadow:0 3px 14px rgba(0,0,0,.45)}
/* 硬编码墨色线条 → 亮色 */
html.dark .course-pipe .hero{
  background:
    linear-gradient(rgba(236,231,220,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(236,231,220,.045) 1px,transparent 1px),
    var(--paper);
  background-size:24px 24px,24px 24px,auto;
}
html.dark .course-pipe .rail{border-bottom-color:rgba(236,231,220,.3)}
html.dark .course-pipe .route-flow::before{background:repeating-linear-gradient(180deg,rgba(236,231,220,.3) 0 7px,transparent 7px 15px)}
html.dark .course-pipe .plate.pre{border-color:rgba(236,231,220,.4)}
html.dark .course-pipe .lessons li{border-top-color:rgba(236,231,220,.14)}
html.dark .course-pipe .badge{border-color:rgba(236,231,220,.34)}
html.dark .course-pipe .badge.b-free{background:rgba(47,125,87,.28)}
html.dark .course-pipe .wp-chip{border-color:rgba(236,231,220,.26);box-shadow:0 2px 8px rgba(0,0,0,.35)}
html.dark .course-pipe .wp-chip.zero .ct{background:rgba(236,231,220,.32)}
html.dark .course-pipe .waypoint.start .wp-chip{border:none}
html.dark .course-pipe .l-check{border-color:rgba(236,231,220,.35)}
html.dark .course-pipe .lrow.is-done .l-check{background:var(--green);border-color:var(--green)}
html.dark .course-pipe .progress-card{border-color:rgba(236,231,220,.26);box-shadow:0 2px 8px rgba(0,0,0,.35)}
html.dark .course-pipe .pipe-rebuild{border-color:#c9962e;background:rgba(201,150,46,.1)}
html.dark .course-pipe .pipe-rebuild strong{color:#c9962e}
/* 绿系文字提亮（保持 --green 原值给色块背景用） */
html.dark .course-pipe .crumb .live,
html.dark .course-pipe .meta .free-n,
html.dark .course-pipe .fit-tx b.no-need,
html.dark .course-pipe .badge.b-free,
html.dark .course-pipe .badge.b-chk{color:#7ec99f}
html.dark .course-pipe .crumb .live::before{background:#7ec99f}
html.dark .course-pipe .badge.b-jud{color:#9fb4e8;border-color:rgba(139,151,232,.55)}

/* 站点外壳同名类冲突修正（shell.css 的 .chk/.crumb/.stamp 泛化规则） */
.course-pipe .chk{justify-content:flex-start;flex:initial}
.course-pipe .crumb{margin-bottom:0}
.course-pipe .stamp{padding:0}
