/* Komponen tutorial (dipakai post yang memakai class tut-*).
   Selektor diperkuat (.prose .x.x) agar tidak tertimpa gaya artikel bawaan. */
.prose .not-prose.tut-meta,.prose .not-prose.tut-video,.prose .not-prose.tut-steps,.prose .not-prose.tut-callout,
.prose .not-prose.tut-rules,.prose .not-prose.tut-alt,.prose .not-prose.tut-faq{
  --t-acc:var(--theme-500,#6366f1);--t-acc-hi:var(--theme-400,#818cf8);
  --t-card:#f8fafc;--t-card2:#eef2f7;--t-line:#e2e8f0;--t-txt:#0f172a;--t-muted:#475569;
  color:var(--t-txt);
}
html.dark .prose .not-prose.tut-meta,html.dark .prose .not-prose.tut-video,html.dark .prose .not-prose.tut-steps,html.dark .prose .not-prose.tut-callout,
html.dark .prose .not-prose.tut-rules,html.dark .prose .not-prose.tut-alt,html.dark .prose .not-prose.tut-faq{
  --t-card:#0f172a;--t-card2:#16213a;--t-line:#1e293b;--t-txt:#f1f5f9;--t-muted:#b4c0d3;
}
html .prose .not-prose:where(.tut-steps,.tut-callout,.tut-rules,.tut-alt,.tut-faq,.tut-video) :is(p,ul,ol,li,h3,figure,figcaption){margin:0;padding:0;color:inherit;border:0;line-height:1.6}
html .prose .not-prose:where(.tut-steps,.tut-callout,.tut-rules,.tut-alt,.tut-faq,.tut-video) :is(ul,ol){list-style:none}
html .prose .not-prose:where(.tut-steps,.tut-callout,.tut-rules,.tut-alt,.tut-faq) :is(b,strong){color:var(--t-txt)}
html .prose kbd{display:inline-block;min-width:26px;padding:2px 8px;border-radius:7px;font:600 12.5px/1.6 'JetBrains Mono',ui-monospace,monospace;text-align:center;color:var(--t-txt,#e2e8f0);background:var(--t-card2,rgba(148,163,184,.14));border:1px solid var(--t-line,rgba(148,163,184,.3));box-shadow:inset 0 -2px 0 var(--t-line,rgba(148,163,184,.3))}
html:not(.dark) .prose kbd{color:#0f172a}

/* Meta chips */
.prose .tut-meta.tut-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 1.4rem}
.prose .tut-meta.tut-meta span{font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--t-card);border:1px solid var(--t-line);color:var(--t-muted)}

/* Video vertikal (Shorts) */
.prose .tut-video.tut-video{margin:1rem auto 1.5rem;max-width:340px;text-align:center}
.prose .tut-video .tut-video-frame{position:relative;aspect-ratio:9/16;border-radius:22px;overflow:hidden;background:#000;
  box-shadow:0 0 0 1px var(--t-line),0 24px 50px -24px color-mix(in srgb,var(--t-acc) 70%,transparent)}
.prose .tut-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.prose .tut-video.tut-video figcaption{margin-top:10px;font-size:13px;color:var(--t-muted)}
.prose .tut-video figcaption a{color:var(--t-acc-hi);text-decoration:none;font-weight:600}

/* Langkah bernomor */
.prose .tut-steps.tut-steps{counter-reset:ts;display:grid;gap:12px;margin:1rem 0 1.25rem}
.prose .tut-steps.tut-steps>li{counter-increment:ts;position:relative;padding:16px 18px 16px 64px;border-radius:18px;background:var(--t-card);border:1px solid var(--t-line);margin:0}
.prose .tut-steps.tut-steps>li::before{content:counter(ts);position:absolute;left:16px;top:16px;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff;background:linear-gradient(135deg,var(--t-acc),#0ea5e9)}
.prose .tut-steps.tut-steps>li:not(:last-child)::after{content:"";position:absolute;left:32px;top:54px;bottom:-14px;width:2px;background:var(--t-line)}
.prose .tut-steps .tut-step-h{font-weight:800;font-size:16.5px;margin-bottom:4px;color:var(--t-txt)}
.prose .tut-steps.tut-steps p{font-size:15px;color:var(--t-muted)}
.prose .tut-steps a{color:var(--t-acc-hi)}
.prose .tut-steps .tut-path{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;border-radius:10px;font:600 13px/1.4 'JetBrains Mono',ui-monospace,monospace;color:var(--t-acc-hi);background:color-mix(in srgb,var(--t-acc) 12%,transparent)}
.prose .tut-steps .tut-path i{font-style:normal;opacity:.6}

/* Callout */
.prose .tut-callout.tut-callout{margin:1rem 0 1.5rem;padding:16px 18px;border-radius:16px;border:1px solid var(--t-line);background:var(--t-card)}
.prose .tut-callout.tut-callout>strong{display:block;font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}
.prose .tut-callout.tut-callout p{font-size:15px;color:var(--t-muted)}
.prose .tut-ok.tut-ok{background:color-mix(in srgb,#10b981 9%,transparent);border-color:color-mix(in srgb,#10b981 35%,transparent)}
.prose .tut-ok.tut-ok>strong{color:#10b981}
.prose .tut-store.tut-store{background:linear-gradient(135deg,color-mix(in srgb,var(--t-acc) 14%,transparent),color-mix(in srgb,#0ea5e9 8%,transparent));border-color:color-mix(in srgb,var(--t-acc) 40%,transparent)}
.prose .tut-store.tut-store>strong{color:var(--t-acc-hi);text-transform:none;letter-spacing:0;font-size:16px}
.prose .tut-store.tut-store ol{counter-reset:st;display:grid;gap:8px;margin:10px 0 12px}
.prose .tut-store.tut-store ol li{counter-increment:st;position:relative;padding-left:34px;font-size:15px;color:var(--t-muted)}
.prose .tut-store.tut-store ol li::before{content:counter(st);position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;background:var(--t-acc)}
.prose .tut-store .tut-warn-line.tut-warn-line{padding:10px 12px;border-radius:12px;font-size:14.5px;color:var(--t-txt);background:color-mix(in srgb,#f59e0b 14%,transparent);border:1px solid color-mix(in srgb,#f59e0b 40%,transparent)}
.prose .tut-store .tut-link{display:inline-flex;margin-top:12px;padding:9px 16px;border-radius:12px;font-weight:700;font-size:14px;color:#fff;background:var(--t-acc);text-decoration:none}
.prose .tut-store .tut-link:hover{filter:brightness(1.1);color:#fff}

/* Aturan nama */
.prose .tut-rules.tut-rules{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:1rem 0 1.5rem}
.prose .tut-rules>div{padding:16px 18px;border-radius:16px;border:1px solid var(--t-line);background:var(--t-card)}
.prose .tut-rules strong{display:block;font-size:15px;margin-bottom:8px}
.prose .tut-rules .tut-rule-ok strong{color:#10b981}.prose .tut-rules .tut-rule-no strong{color:#f43f5e}
.prose .tut-rules.tut-rules li{position:relative;padding-left:16px;font-size:14.5px;color:var(--t-muted);margin-bottom:5px}
.prose .tut-rules.tut-rules li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}

/* Cara alternatif */
.prose .tut-alt.tut-alt{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:1rem 0 1.5rem}
.prose .tut-alt article{padding:18px;border-radius:18px;border:1px solid var(--t-line);background:var(--t-card);min-width:0}
.prose .tut-alt .tut-alt-tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--t-acc-hi);background:color-mix(in srgb,var(--t-acc) 14%,transparent)}
.prose .tut-alt.tut-alt h3{font-size:17px;font-weight:800;margin:10px 0 6px;color:var(--t-txt)}
.prose .tut-alt.tut-alt p{font-size:14.5px;color:var(--t-muted)}
.prose .tut-alt .tut-code{margin:10px 0 0;padding:12px 14px;border-radius:12px;overflow-x:auto;font-size:13px;background:#020617;color:#e2e8f0;border:1px solid var(--t-line)}

/* FAQ */
.prose .tut-faq.tut-faq{margin:0 0 10px;border-radius:16px;border:1px solid var(--t-line);background:var(--t-card);overflow:hidden}
.prose .tut-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-weight:700;font-size:15.5px;color:var(--t-txt)}
.prose .tut-faq summary::-webkit-details-marker{display:none}
.prose .tut-faq summary::after{content:"+";flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:17px;color:var(--t-acc-hi);background:color-mix(in srgb,var(--t-acc) 12%,transparent);transition:transform .2s}
.prose .tut-faq[open] summary::after{transform:rotate(45deg)}
.prose .tut-faq.tut-faq p{padding:0 18px 16px;font-size:14.5px;color:var(--t-muted)}

@media (max-width:640px){
  .prose .tut-rules.tut-rules,.prose .tut-alt.tut-alt{grid-template-columns:1fr}
  .prose .tut-steps.tut-steps>li{padding-left:58px}
}
html .prose .tut-alt .tut-code code{color:#e2e8f0;background:none;padding:0;font-size:inherit}
html:not(.dark) .prose .tut-store.tut-store>strong,html:not(.dark) .prose .tut-alt .tut-alt-tag,html:not(.dark) .prose .tut-steps .tut-path{color:var(--t-acc)}
