/* ============================================================
   We Repair for Youth — LMS v2: practice activities, checklist,
   Repair Passport (badges), certificate. Same tokens as style.css.
   ============================================================ */
:root{--paper-ink:#17212A;--red:#E07A5F;--amber:#E9B44C;}

/* ---------- lesson checklist ---------- */
.lchk{background:var(--ink-2);border:1px solid var(--line);border-left:4px solid var(--green);border-radius:6px;padding:20px 22px;margin:0 0 28px;}
.lchk .q-kicker{font-family:var(--font-mono);font-size:12px;color:var(--green);letter-spacing:.1em;margin-bottom:10px;}
.lchk ul{list-style:none;margin:0;padding:0;}
.lchk li{border-top:1px dashed var(--line);}
.lchk li:first-child{border-top:0;}
.lchk label{display:flex;gap:12px;align-items:flex-start;padding:10px 0;cursor:pointer;color:var(--t-2);font-size:15px;}
.lchk input{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--line-2);border-radius:2px;flex:0 0 auto;margin-top:1px;display:grid;place-content:center;cursor:pointer;}
.lchk input:checked{background:var(--green);border-color:var(--green);}
.lchk input:checked::after{content:"✓";color:var(--ink);font-weight:700;font-size:13px;}
.lchk input:checked+span{color:#fff;}
.quiz.solved{border-top-color:var(--green);}
.gate-note{font-family:var(--font-mono);font-size:12px;color:var(--t-3);align-self:center;}
.btn[disabled]{opacity:.4;cursor:not-allowed;}

/* ---------- activity shell ---------- */
.act{background:var(--ink-3);border:1px solid var(--line);border-top:4px solid var(--green);border-radius:6px;padding:24px 24px 20px;margin:0 0 28px;}
.act.complete{border-color:#56603a;border-top-color:var(--green);}
.act-kicker{font-family:var(--font-mono);font-size:12px;color:var(--green);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;}
.act-title{font-size:26px;line-height:1.05;margin:0 0 6px;}
.act-intro{font-size:14px!important;color:var(--t-3)!important;margin:0 0 16px!important;line-height:1.5!important;}
.act-head{margin-bottom:14px;}
.act-fb{display:none;margin-top:14px;background:var(--paper);color:var(--paper-ink);padding:12px 16px;border-left:4px solid var(--green);font-size:14px;line-height:1.5;}
.act-fb.show{display:block;}
.act-fb.no{border-left-color:var(--red);}
.act-fb.info{border-left-color:var(--blue);}
.act-fb b{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.03em;}
.act-fb .act-next{margin-top:10px;}
.act-stats{display:flex;gap:22px;margin-top:16px;border-top:1px solid var(--line);padding-top:12px;}
.act-stats.row{border-top:0;padding-top:0;justify-content:space-between;}
.act-stat b{display:block;font-family:var(--font-head);font-weight:700;font-size:26px;color:#fff;line-height:1;}
.act-stat span{font-family:var(--font-mono);font-size:11px;color:var(--t-4);text-transform:uppercase;}
.act-stage{position:relative;width:100%;background:radial-gradient(circle at 50% 45%,#22303b,#141d24 72%);border:1px solid var(--line);user-select:none;}
.act-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;}

/* ---------- label (drag & drop) ---------- */
.act-label{display:grid;grid-template-columns:210px 1fr;gap:18px;align-items:start;}
.act-chips{display:flex;flex-direction:column;gap:8px;}
.act-chip{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--ink-2);border:1px solid var(--line);color:#fff;padding:10px 12px;font-family:var(--font-head);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:14px;cursor:grab;text-align:left;width:100%;}
.act-chip small{font-family:var(--font-mono);font-size:10px;color:var(--t-4);text-transform:none;letter-spacing:0;font-weight:400;}
.act-chip.sel{border-color:var(--green);box-shadow:0 0 0 2px rgba(185,196,128,.35);}
.act-chip.used{opacity:.3;border-style:dashed;cursor:default;}
.act-zone{position:absolute;border:1.5px dashed #5b6a74;background:rgba(20,29,36,.75);color:var(--t-4);font-family:var(--font-head);font-weight:600;text-transform:uppercase;font-size:clamp(9px,1.4vw,13px);letter-spacing:.04em;cursor:pointer;padding:0 4px;line-height:1;}
.act-zone.hover,.act-zone:hover{border-color:var(--green);}
.act-zone.ok{border:1.5px solid var(--green);background:rgba(185,196,128,.16);color:var(--green);cursor:default;}
.act-zone.bad{border:1.5px solid var(--red);background:rgba(224,122,95,.18);animation:act-shake .3s;}
@keyframes act-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* ---------- branch (scenario) ---------- */
.act-chain{display:flex;align-items:center;flex-wrap:wrap;gap:0;margin:0 0 18px;}
.act-step{font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:.05em;text-transform:uppercase;padding:7px 12px;border:1px solid var(--line);color:#6d7a83;}
.act-step.done{background:var(--green);border-color:var(--green);color:var(--ink);}
.act-step.now{color:#fff;border-color:var(--blue);box-shadow:inset 0 -3px 0 var(--blue);}
.act-arrow{width:16px;height:1px;background:var(--line);}
.act-branch{display:grid;grid-template-columns:1fr 230px;gap:18px;align-items:start;}
.act-scene{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;}
.act-bench{background:#11191f;border:1px solid var(--line);padding:12px 14px;min-width:180px;}
.act-bench .lbl{font-family:var(--font-mono);font-size:10px;color:var(--t-4);text-transform:uppercase;margin-bottom:6px;}
.act-read{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border-top:1px solid var(--line);padding:6px 0;}
.act-read span{font-family:var(--font-mono);font-size:11px;color:var(--t-3);}
.act-read b{font-family:var(--font-mono);font-weight:500;font-size:26px;color:var(--green);}
.act-read b.low{color:var(--amber);}
.act-read b.bad{color:var(--red);}
.act-read b.ok{color:var(--green);}
.act-qcol{flex:1;min-width:240px;}
.act-q{font-size:17px!important;line-height:1.45!important;color:#fff!important;margin:0 0 14px!important;}
.act-opts{display:flex;flex-direction:column;gap:8px;}
.act-opt{display:flex;gap:12px;align-items:center;background:var(--ink-2);border:1px solid var(--line);padding:11px 14px;color:var(--t-2);font-size:14px;text-align:left;cursor:pointer;width:100%;}
.act-opt .k{font-family:var(--font-head);font-weight:600;width:26px;height:26px;border:1px solid #5b6a74;display:flex;align-items:center;justify-content:center;flex:none;color:var(--t-3);}
.act-opt:hover:not([disabled]){border-color:var(--green);}
.act-opt.sel{border-color:var(--green);color:#fff;background:rgba(185,196,128,.08);}
.act-opt.sel .k{background:var(--green);color:var(--ink);border-color:var(--green);}
.act-opt.wrong{border-color:var(--red);opacity:.6;}
.act-opt[disabled]{cursor:default;}
.act-log{background:var(--paper);color:var(--paper-ink);padding:14px 14px 10px;position:relative;font-size:12.5px;}
.act-log h3{font-family:var(--font-head);font-size:17px;color:var(--paper-ink);border-bottom:2px solid var(--paper-ink);padding-bottom:5px;margin:0 0 6px;}
.act-log-stamp{position:absolute;right:10px;top:10px;transform:rotate(8deg);border:2px solid var(--erasmus);color:var(--erasmus);font-family:var(--font-head);font-weight:700;font-size:10px;padding:2px 5px;text-transform:uppercase;letter-spacing:.06em;}
.act-logrow{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed #b7b2a6;padding:6px 0;}
.act-logrow .k{font-family:var(--font-mono);font-size:10px;color:#706F6F;text-transform:uppercase;flex:none;}
.act-logrow .v{text-align:right;}
.act-logrow.pending .v{color:#b0aa9c;}

/* ---------- hotspot ---------- */
.act-hot{display:grid;grid-template-columns:1fr 210px;gap:18px;align-items:start;}
.act-stage.hot{cursor:crosshair;border-radius:6px;overflow:hidden;}
.act-ring{position:absolute;border:3px solid var(--green);border-radius:50%;pointer-events:none;}
.act-ring::after{content:attr(data-l);position:absolute;left:100%;top:-8px;margin-left:6px;white-space:nowrap;background:var(--green);color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;}
.act-miss{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border:2px solid var(--red);border-radius:50%;pointer-events:none;animation:act-fade .9s forwards;}
@keyframes act-fade{to{opacity:0;transform:scale(1.6)}}
.act-count b{font-family:var(--font-head);font-weight:700;font-size:52px;color:#fff;line-height:1;}
.act-count span{font-family:var(--font-head);font-size:24px;color:#6d7a83;}
.act-found{margin-top:10px;border-top:1px solid var(--line);}
.act-frow{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--t-2);line-height:1.45;}
.act-frow i{width:11px;height:11px;border-radius:50%;background:var(--green);margin-top:4px;flex:none;}
.act-frow.todo i{background:none;border:2px dashed #6d7a83;}
.act-frow b{display:block;font-family:var(--font-head);font-size:14px;text-transform:uppercase;color:var(--green);letter-spacing:.04em;}
.act-frow.todo b{color:#6d7a83;}
.act-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}

/* ---------- sort ---------- */
.act-tray{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;min-height:20px;}
.act-tag{background:var(--paper);color:var(--paper-ink);padding:8px 12px 8px 24px;position:relative;font-family:var(--font-head);font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.03em;text-align:left;border:0;cursor:grab;}
.act-tag::before{content:"";position:absolute;left:9px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--paper-ink);}
.act-tag small{display:block;font-family:var(--font-mono);font-weight:400;font-size:10px;color:#706F6F;text-transform:none;letter-spacing:0;}
.act-tag.sel{outline:3px solid var(--green);transform:rotate(-2deg);}
.act-tag.placed{width:100%;cursor:default;margin-bottom:6px;}
.act-tag .tick{position:absolute;right:10px;top:8px;color:#5e7a2a;}
.act-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.act-col{border:1px solid var(--line);background:#141d24;min-height:200px;display:flex;flex-direction:column;}
.act-col.green{border-top:4px solid var(--green);}.act-col.amber{border-top:4px solid var(--amber);}.act-col.red{border-top:4px solid var(--red);}.act-col.blue{border-top:4px solid var(--blue);}
.act-col.hover{background:rgba(185,196,128,.06);}
.act-col.bad{animation:act-shake .3s;border-color:var(--red);}
.act-colhead{background:none;border:0;text-align:left;padding:12px 12px 6px;cursor:pointer;color:#fff;}
.act-colhead span{display:block;font-family:var(--font-head);font-weight:700;font-size:18px;text-transform:uppercase;}
.act-colhead small{display:block;font-size:12px;color:var(--t-3);line-height:1.4;margin-top:2px;}
.act-colbody{flex:1;padding:6px 10px 10px;cursor:pointer;}

/* ---------- Repair Passport ---------- */
.pp-grid{display:grid;grid-template-columns:1fr 340px;gap:40px;align-items:start;}
.pp-h{font-size:16px;letter-spacing:.06em;color:var(--t-3);margin:0 0 10px;}
.pp-mod{margin-bottom:22px;}
.pp-cells{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.pp-cell{position:relative;border:1px solid var(--line);padding:8px 8px 18px;min-height:72px;font-size:12px;line-height:1.25;color:var(--t-3);background:var(--ink);}
.pp-cell i{display:block;font-style:normal;font-family:var(--font-mono);font-size:10px;color:var(--t-5);margin-bottom:2px;}
.pp-cell:hover{border-color:var(--green);color:#fff;}
.pp-cell.done{background:rgba(185,196,128,.12);border-color:#56603a;color:#dfe5c6;}
.pp-tick{position:absolute;right:6px;bottom:4px;color:var(--green);font-weight:700;}
.stamps{display:flex;gap:18px;flex-wrap:wrap;}
.stamp{width:118px;height:118px;border-radius:50%;border:3px solid #4a5862;color:#4a5862;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:var(--font-head);font-weight:700;font-size:14px;line-height:1.05;text-transform:uppercase;letter-spacing:.04em;position:relative;padding:12px;}
.stamp::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1px dashed currentColor;opacity:.7;}
.stamp small{font-family:var(--font-mono);font-weight:400;font-size:9px;letter-spacing:.02em;margin-top:6px;opacity:.85;}
.stamp.on.green{color:var(--green);border-color:var(--green);}
.stamp.on.blue{color:var(--blue);border-color:var(--blue);}
.stamp.on.r1{transform:rotate(6deg);}.stamp.on.r2{transform:rotate(-9deg);}.stamp.on.r3{transform:rotate(3deg);}.stamp.on.r4{transform:rotate(-5deg);}.stamp.on.r5{transform:rotate(8deg);}
.cert-mini{background:#fbf9f4;color:var(--paper-ink);border:1px solid #d9d3c4;padding:18px;outline:1.5px solid var(--paper-ink);outline-offset:-8px;}
.cert-mini .t{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#706F6F;margin:4px 0;}
.cert-mini .h{font-family:var(--font-head);font-weight:700;font-size:26px;line-height:1;text-transform:uppercase;margin:6px 0 10px;color:var(--paper-ink);}
.cert-mini .n{font-family:var(--font-head);font-weight:600;font-size:20px;border-bottom:1px solid var(--paper-ink);padding-bottom:4px;margin-bottom:8px;color:var(--paper-ink);}
.cert-mini.locked{opacity:.45;filter:grayscale(1);}
.cert-form label{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:#706F6F;margin:6px 0 4px;}
.cert-form input{width:100%;border:1px solid #b7b2a6;background:#fff;padding:10px 12px;font-size:16px;margin-bottom:10px;color:var(--paper-ink);}

/* ---------- Certificate page ---------- */
.cert-sheet{max-width:980px;margin:0 auto;aspect-ratio:297/210;background:#fbf9f4;color:var(--paper-ink);padding:3.2%;box-shadow:0 16px 40px rgba(0,0,0,.45);}
.cert-border{height:100%;border:2px solid var(--paper-ink);padding:4% 5%;display:flex;flex-direction:column;position:relative;}
.cert-top{display:flex;justify-content:space-between;align-items:flex-start;}
.cert-t{font-family:var(--font-mono);font-size:clamp(9px,1.2vw,12px);letter-spacing:.1em;text-transform:uppercase;color:#706F6F;}
.cert-stamp{width:clamp(80px,13vw,128px);height:clamp(80px,13vw,128px);border-radius:50%;border:3px solid var(--erasmus);color:var(--erasmus);display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--font-head);font-weight:700;font-size:clamp(9px,1.25vw,13px);line-height:1.15;text-transform:uppercase;transform:rotate(-12deg);flex:none;}
.cert-h{font-size:clamp(30px,5.6vw,60px);color:var(--paper-ink)!important;margin:-2% 0 3%;}
.cert-this{font-family:var(--font-mono);font-size:clamp(10px,1.2vw,12px);color:#706F6F;text-transform:uppercase;letter-spacing:.08em;}
.cert-name{font-family:var(--font-head);font-weight:600;font-size:clamp(24px,4vw,42px);border-bottom:1.5px solid var(--paper-ink);padding:1% 0 1%;margin-bottom:2.5%;}
.cert-p{font-size:clamp(11px,1.45vw,15px)!important;line-height:1.5!important;color:var(--paper-ink)!important;max-width:760px;margin:0!important;}
.cert-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:auto;font-family:var(--font-mono);font-size:clamp(9px,1.1vw,12px);color:#444;padding-top:2%;}
.cert-logos{display:flex;align-items:center;gap:22px;border-top:1px solid #d9d3c4;padding-top:2%;margin-top:2%;}
.cert-logos img{height:clamp(30px,5vw,52px);width:auto;}
.cert-logos .eu{height:clamp(28px,4.6vw,48px);}
.cert-ref{margin-left:auto;font-family:var(--font-mono);font-size:clamp(8px,1vw,11px);color:#706F6F;}
@media print{
  @page{size:A4 landscape;margin:0;}
  body{background:#fff!important;}
  .site-nav,.site-footer,.no-print,.flash,.skip{display:none!important;}
  .cert-page{padding:0!important;}
  .cert-page .wrap{padding:0!important;max-width:none!important;}
  .cert-sheet{max-width:none;width:297mm;height:210mm;aspect-ratio:auto;box-shadow:none;padding:9mm;}
  .cert-h{font-size:58px;}.cert-name{font-size:40px;}.cert-p{font-size:15px!important;}
  .cert-t,.cert-this,.cert-meta{font-size:11.5px;}.cert-stamp{width:120px;height:120px;font-size:13px;}
  .cert-logos img{height:50px;}.cert-logos .eu{height:46px;}.cert-ref{font-size:10.5px;}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

/* ---------- admin ---------- */
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.admin-stats .num{font-size:36px;}
.admin-table-wrap{overflow-x:auto;}
.admin-table{width:100%;border-collapse:collapse;font-size:14px;}
.admin-table th{text-align:left;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--t-4);border-bottom:1px solid var(--line-2);padding:8px 10px 8px 0;}
.admin-table td{border-bottom:1px solid var(--line);padding:9px 10px 9px 0;color:var(--t-2);}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .act-label,.act-branch,.act-hot{grid-template-columns:1fr;}
  .act-chips{flex-direction:row;flex-wrap:wrap;}
  .act-chip{width:auto;}
  .act-cols{grid-template-columns:1fr;}
  .act-col{min-height:90px;}
  .pp-grid{grid-template-columns:1fr;}
  .pp-cells{grid-template-columns:repeat(3,1fr);}
  .admin-stats{grid-template-columns:repeat(2,1fr);}
  .act{padding:18px 16px;}
}
.site-footer .eu{height:44px;}