/* =================================================================
   FITUR: Lomba & Seminar (siswa + guru) — desain krem / hitam hangat / vermilion
   Sumber: dokumen/produk/PREVIEW_DASHBOARD_BARU.html (kartu Opportunity Radar) dan DESIGN.md.
   Hanya memakai token dari style.css (tanpa warna tetap). Aksen vermilion HEMAT:
   tombol utama, label "Dibiayai sekolah", tenggat mepet, angka sorotan, melebihi kuota.
   Animasi: transform/opacity saja, 150–320ms; prefers-reduced-motion diurus style.css.
   ================================================================= */

/* ---------- kisi kartu ---------- */
.lomba-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr))}
.lomba-grid > .empty{grid-column:1/-1}

/* ---------- kartu lomba / seminar ---------- */
.lomba-card{position:relative;display:flex;flex-direction:column;gap:14px;min-width:0;padding:20px;border-radius:var(--r-lg);
  background:var(--card);border:1px solid var(--line);
  transition:transform .22s var(--ease-kuat),border-color .2s var(--ease),box-shadow .25s var(--ease)}
.lomba-card:hover{transform:translateY(-3px);border-color:var(--ink);box-shadow:var(--shadow-hover)}
.lomba-card.punya{border-color:var(--line-strong)}
.lomba-card.tutup .lomba-judul{color:var(--muted)}
.lomba-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.lomba-judul{font:700 17px/1.28 var(--f-body);letter-spacing:-.005em;text-wrap:balance;overflow-wrap:anywhere}
.lomba-sub{margin-top:6px;font:400 11.5px/1.55 var(--f-mono);letter-spacing:.03em;color:var(--muted);overflow-wrap:anywhere}

/* tenggat + kuota (mono) */
.lomba-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;font:400 11px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.lomba-meta > span{min-width:0}
.lomba-meta > span:last-child:not(:first-child){text-align:right}
.lomba-meta.m3 > span:nth-child(2){text-align:center}
.lomba-meta b{display:block;margin-top:4px;font:600 13px/1.3 var(--f-mono);letter-spacing:.02em;text-transform:none;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.lomba-meta em{display:block;margin-top:2px;font:400 11px/1.4 var(--f-mono);font-style:normal;letter-spacing:.02em;color:var(--muted)}
.lomba-meta .tg.mepet b{color:var(--api-text)}
.lomba-meta .tg.tutup b{color:var(--muted)}
.lomba-meta .lebih b{color:var(--api-text)}
.lomba-wkt{margin-top:-2px}
.lomba-wkt i{background:var(--ink);transform-origin:left}
.lomba-wkt.mepet i{background:var(--api)}
.view.enter .lomba-wkt i{animation:grow .8s .25s var(--ease-out) both}
.lomba-hint{font:400 11px/1.5 var(--f-mono);letter-spacing:.04em;color:var(--muted)}
.lomba-hint.lebih{color:var(--api-text);font-weight:600;text-transform:uppercase;letter-spacing:.1em}

/* kaki kartu: Detail (garis) + Ajukan diri (kapsul vermilion + bulatan panah) */
.lomba-kaki{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:2px}
.lomba-kaki .btn{white-space:nowrap}
.lomba-kaki .btn.primary,.lomba-kaki a.btn,.lomba-kaki .lomba-nonaktif{flex:1}
.lomba-kaki .lomba-hint{flex:1;text-align:right}
.lomba-ik{flex:none;width:44px;padding:0}
.lomba-ik svg{width:18px;height:18px}
.lomba-nonaktif:disabled{opacity:1;color:var(--muted);border-style:dashed;border-color:var(--line-strong);background:transparent;cursor:not-allowed}
.btn svg{width:15px;height:15px;flex:none}

/* ---------- bar atas, saringan ---------- */
.lomba-bar-atas{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.lomba-jseg{display:inline-flex;gap:2px;padding:3px;border-radius:999px;border:1px solid var(--line-strong);max-width:100%}
.lomba-jseg button,.lomba-jseg label{display:inline-flex;align-items:center;gap:7px;min-height:34px;margin:0;padding:0 14px;border:0;border-radius:999px;background:transparent;
  color:var(--muted);font:600 11.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;
  transition:background-color .2s var(--ease),color .2s var(--ease),transform .18s var(--ease-kuat)}
.lomba-jseg button span{font-weight:400;opacity:.8}
.lomba-jseg button:hover,.lomba-jseg label:hover{color:var(--ink)}
.lomba-jseg button:active,.lomba-jseg label:active{transform:scale(.96)}
.lomba-jseg .on{background:var(--pill);color:var(--pill-fg)}
.lomba-jseg label input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.lomba-jseg label:has(input:focus-visible){outline:2px solid var(--api);outline-offset:2px}
.lomba-jseg-form{align-self:flex-start;margin-bottom:6px}
.lomba-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:-4px 0;padding:4px 0}
.lomba-chips::-webkit-scrollbar{display:none}
.lomba-chips button{flex:none;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--muted);
  font:600 11.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;
  transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .18s var(--ease-kuat)}
.lomba-chips button:hover{color:var(--ink);border-color:var(--ink)}
.lomba-chips button:active{transform:scale(.96)}
.lomba-chips button.on{background:var(--pill);border-color:var(--pill);color:var(--pill-fg)}
.lomba-closed > summary{margin-bottom:14px}
.lomba-closed[open] > summary ~ *{animation:rise .3s var(--ease-out) both}

/* ---------- pengajuanku & undangan ---------- */
.lomba-mine .list{gap:0}
.lomba-mine .list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.lomba-mine .list li:first-child{border-top:0;padding-top:0}
.lomba-mine .list li:last-child{padding-bottom:0}
.lomba-link{flex:1;min-width:0;display:grid;gap:3px;border:0;background:none;padding:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.lomba-link-t{font-weight:700;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .2s var(--ease)}
.lomba-link:hover .lomba-link-t{text-decoration-color:var(--api)}
.lomba-link-s{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lomba-invite .card-h .lbl{color:var(--api-text)}
.lomba-inv-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line)}
.lomba-inv-row:first-of-type{border-top:0;padding-top:0}
.lomba-inv-row:last-child{padding-bottom:0}
.lomba-inv-row .grow{flex:1 1 260px}

/* ---------- lembar pop-up (detail, formulir, konfirmasi) ---------- */
.lomba-sheet{gap:16px;color:var(--ink)}
.lomba-sheet b,.lomba-sheet-t,.lomba-langkah b{color:var(--ink)}
.lomba-sheet .muted,.lomba-sheet .hint,.lomba-sheet small,.lomba-sub{color:var(--muted)}
.lomba-sheet label{margin:0 0 6px}
.lomba-sheet .lomba-check{margin:0}
.lomba-sheet-t{font:700 18px/1.3 var(--f-body);letter-spacing:-.005em;overflow-wrap:anywhere}
.lomba-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px 16px;padding:14px 16px;border-radius:var(--r);background:var(--sunken);font-size:14px;font-weight:600}
.lomba-facts i{display:block;margin-bottom:3px;font-style:normal}
.lomba-juknis{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;font-size:14.5px;padding:12px 14px;border-radius:var(--r);background:var(--sunken)}
.lomba-aksi{gap:10px}
.lomba-aksi .btn.primary{flex:1 1 180px}
.lomba-timku .list li{padding:10px 14px;border-radius:var(--r);background:var(--sunken)}
.lomba-timku label{margin-bottom:8px}

/* rubrik terbuka */
.lomba-rubrik{padding:14px 16px;border-radius:var(--r);border:1px solid var(--line);background:var(--sunken)}
.lomba-rubrik > summary{min-height:24px;flex-wrap:wrap;gap:4px 10px}
.lomba-rub-ringkas{margin-left:auto;font:600 11px var(--f-mono);letter-spacing:.06em;color:var(--ink);font-variant-numeric:tabular-nums}
.lomba-rubrik[open] .lomba-rub-ringkas{display:none}
.lomba-rub-isi{margin-top:14px;display:grid;gap:14px}
.lomba-rub-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.lomba-rub-list li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:2px 12px;align-items:start}
.lomba-rub-k{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-strong);background:var(--card);font:600 13px var(--f-mono)}
.lomba-rub-t b{font-size:14.5px;line-height:1.3}
.lomba-rub-t p{margin-top:3px;font-size:13px;line-height:1.5;color:var(--muted)}
.lomba-rub-w{padding-top:7px;font:600 13px var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.lomba-rub-list .bar{grid-column:2/-1;height:4px;margin-top:8px}
.lomba-rub-list .bar i{transform-origin:left;animation:grow .6s .1s var(--ease-out) both}
.lomba-rub-list li.nol{opacity:.55}
.lomba-rub-isi .hint{margin:0}

/* konfirmasi sesudah Ajukan + tiga langkah */
.lomba-ok{justify-items:center;text-align:center}
.lomba-ok > *{max-width:100%}
.lomba-ok-ikon{display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:var(--api-soft);color:var(--api-text);animation:pop .4s var(--ease-kuat) both}
.lomba-ok-ikon svg{width:32px;height:32px;stroke-width:2.4}
.lomba-ok-ikon path{stroke-dasharray:24;stroke-dashoffset:24;animation:centang .45s .18s var(--ease-out) forwards}
.lomba-ok .lomba-sub{margin-top:4px;font:400 14px/1.5 var(--f-body);letter-spacing:0}
.lomba-ok .lomba-aksi{justify-content:center;width:100%}
.lomba-langkah{position:relative;display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin:0;padding:0;list-style:none}
.lomba-langkah::before{content:"";position:absolute;left:16.6%;right:16.6%;top:17px;height:2px;background:var(--line-strong)}
.lomba-langkah li{position:relative;z-index:1;display:grid;justify-items:center;align-content:start;gap:8px;text-align:center}
.lomba-ok .lomba-langkah li{animation:rise .4s var(--ease-kuat) both}
.lomba-ok .lomba-langkah li:nth-child(1){animation-delay:.25s} .lomba-ok .lomba-langkah li:nth-child(2){animation-delay:.33s} .lomba-ok .lomba-langkah li:nth-child(3){animation-delay:.41s}
.lomba-langkah i{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--card);border:2px solid var(--line-strong);font:600 13px var(--f-mono);font-style:normal;color:var(--muted)}
.lomba-langkah i svg{width:16px;height:16px;stroke-width:2.6}
.lomba-langkah li.done i{background:var(--pill);border-color:var(--pill);color:var(--pill-fg)}
.lomba-langkah li.now i{background:var(--api);border-color:var(--api);color:var(--on-api);box-shadow:0 0 0 5px var(--api-soft)}
.lomba-langkah b{font-size:13px;line-height:1.3}

/* ---------- formulir pengajuan ---------- */
fieldset.lomba-tim{margin:0;padding:12px 14px 14px;border:1px solid var(--line-strong);border-radius:var(--r);display:grid;gap:2px}
.lomba-tim legend{padding:0 6px;font-size:13.5px;font-weight:700}
label.lomba-check{display:inline-flex;align-items:center;gap:8px;margin:0;min-height:40px;cursor:pointer;font-weight:600}
.lomba-tim label.lomba-check{min-height:38px;font-weight:500}
.lomba-check input{width:18px;height:18px;min-height:0}
#lTemanBox{padding-top:6px}

/* ---------- guru: statistik, rumus, penilaian ---------- */
.lomba-rumus{font:600 12.5px/1.6 var(--f-mono);letter-spacing:.02em;word-break:break-word;padding:12px 14px;border-radius:var(--r);background:var(--sunken);font-variant-numeric:tabular-nums}
.lomba-rumus small{font-weight:400;color:var(--muted)}
.lomba-cands{gap:16px}
@media (min-width:1100px){.lomba-cands{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
.lomba-cand{display:grid;gap:14px;transition:border-color .2s var(--ease)}
.lomba-cand.on{border-color:var(--ok)}
.lomba-cand-head{display:flex;gap:12px;align-items:flex-start}
.lomba-cand-head > .grow{flex:1 1 auto;min-width:0}
.lomba-cand-head h3{overflow-wrap:anywhere}
.lomba-cand-head .lomba-tags{margin-top:8px}
.lomba-cand-head .lomba-tags .badge{max-width:100%;white-space:normal;text-align:left}   /* badge panjang boleh turun baris di layar sempit */
.lomba-rank{display:grid;place-items:center;flex:none;min-width:34px;height:34px;padding:0 6px;border-radius:50%;border:1px solid var(--line-strong);font:600 12px var(--f-mono);color:var(--muted)}
.lomba-total{text-align:right;flex:none}
.lomba-total b{display:block;font:400 2.6rem/1 var(--f-display);letter-spacing:.01em;color:var(--api-text);font-variant-numeric:tabular-nums}
.lomba-total small{font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.lomba-bars{display:grid;gap:9px}
.lomba-bar{display:grid;grid-template-columns:18px 1fr 30px;gap:2px 10px;align-items:center;font-size:13px}
.lomba-bar > span:first-child{font-weight:600;color:var(--muted)}
.lomba-bar .track{position:relative;height:5px;border-radius:9px;background:var(--line);overflow:hidden}
.lomba-bar .track i{position:absolute;inset:0 auto 0 0;border-radius:9px;background:var(--ink)}
.lomba-bar b{text-align:right;font-variant-numeric:tabular-nums}
.lomba-bar small{grid-column:2/-1;font-size:12px;color:var(--muted)}
.lomba-bar.kosong{opacity:.55}
.lomba-ai{font-size:14px;display:flex;gap:8px;align-items:baseline}
.lomba-why summary{font-size:13px;font-weight:600;color:var(--muted)}
.lomba-why p{margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14.5px}
.lomba-karya{font-size:14px;justify-content:space-between}
.lomba-timinfo{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px}
.lomba-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:3px;border-radius:999px;border:1px solid var(--line-strong)}
@media (max-width:560px){.lomba-seg{grid-template-columns:repeat(2,minmax(0,1fr));border-radius:22px}}
.lomba-seg button{min-height:38px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:600 11.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;
  transition:background-color .2s var(--ease),color .2s var(--ease),transform .18s var(--ease-kuat)}
.lomba-seg button:hover{color:var(--ink)}
.lomba-seg button:active{transform:scale(.96)}
.lomba-seg button.on{background:var(--pill);color:var(--pill-fg)}
label.lomba-timpilih{display:flex;align-items:center;gap:10px;margin:0;font-weight:600;font-size:14px}
.lomba-timpilih select{flex:1;min-height:40px}
.lomba-slider label{margin:0 0 4px}
.lomba-slider input[type=range]{flex:1}
.lomba-slider b{width:28px;text-align:right;font-variant-numeric:tabular-nums}

/* tim */
.lomba-susun h3{font-size:1.03rem}
.lomba-tims{display:grid;gap:10px}
@media (min-width:640px){.lomba-tims{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}
.lomba-timbox{padding:12px 14px;border-radius:var(--r);background:var(--sunken)}
.lomba-timbox.belum{border:1px dashed var(--line-strong);background:transparent}
.lomba-timbox ul{margin:6px 0 0;padding-left:18px;font-size:14px;display:grid;gap:2px;overflow-wrap:anywhere}
.lomba-saring{justify-content:space-between}
.lomba-saring .tabs{margin:0;flex:1 1 320px;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none}
.lomba-saring .tabs::-webkit-scrollbar{display:none}
.lomba-saring .tabs button{flex:1 0 auto;padding:0 10px}
.lomba-cands.ringkas :is(.lomba-bars,.lomba-why,.lomba-karya,.lomba-ai){display:none}
.lomba-cands.ringkas .lomba-cand{gap:10px;padding:14px 16px}

/* ---------- formulir guru (tambah / ubah) ---------- */
.lomba-2{display:grid;gap:0 12px}
@media (min-width:480px){.lomba-2{grid-template-columns:1fr 1fr;align-items:end}}
.lomba-form-guru[data-jenis="seminar"] .hanya-lomba,.lomba-form-guru:not([data-jenis="seminar"]) .hanya-seminar{display:none}

/* HP */
@media (max-width:520px){
  .lomba-card{padding:18px}
  .lomba-total b{font-size:2.2rem}
  .lomba-meta{gap:10px}
  .lomba-rub-list li{grid-template-columns:30px minmax(0,1fr) auto}
  .lomba-rub-k{width:30px;height:30px}
}
