/* ═════════════════════════════════════════════════════════════════
   index.css — gaya app pembeli (lock screen + dashboard)
   Dipisahkan dari <style> index.html lama (tanpa perubahan visual).
   ═════════════════════════════════════════════════════════════════ */

/* ── LOCK ── */
#screen-lock {
  min-height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; padding:24px; gap:14px;
  background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(52,211,153,.12) 0%,transparent 60%),var(--bg);
}
.lock-card { width:100%; max-width:440px; background:var(--surface); border:1px solid var(--border); border-radius:20px; overflow:hidden; }
/* padding dikecilkan di mobile, scale up di 600px+ via media query */
.lock-top { padding:22px 18px 18px; text-align:center; border-bottom:1px solid var(--border); background:linear-gradient(180deg,rgba(52,211,153,.06) 0%,transparent 100%); }
.lock-icon { width:60px;height:60px;background:var(--grad);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 14px;box-shadow:0 8px 28px rgba(52,211,153,.28); }
.lock-title { font-size:22px;font-weight:800;letter-spacing:-.5px;background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.lock-sub { color:var(--text2);font-size:13px;margin-top:5px; }
.lock-body { padding:18px 18px 22px; }

.email-hint { display:flex;align-items:flex-start;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:20px; }
.email-hint-icon { font-size:22px;flex-shrink:0;margin-top:1px; }
.email-hint-title { font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px; }
.email-hint-sub { font-size:12px;color:var(--text2);line-height:1.4; }

.inp-label { font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.6px;display:block;margin-bottom:7px; }
.inp { width:100%;padding:12px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;font-family:'JetBrains Mono',monospace;outline:none;transition:border-color .2s;margin-bottom:14px; }
.inp:focus { border-color:var(--accent); }
.inp::placeholder { color:var(--text3);font-family:'Inter',sans-serif;font-size:13px; }

.btn-activate { width:100%;padding:13px;background:var(--grad);border:none;border-radius:10px;color:#06301f;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .2s,transform .1s;display:flex;align-items:center;justify-content:center;gap:8px; }
.btn-activate:hover { opacity:.9; }
.btn-activate:active { transform:scale(.98); }
.btn-activate:disabled { opacity:.4;cursor:not-allowed; }

.lock-msg { margin-top:12px;padding:11px 13px;border-radius:9px;font-size:13px;display:none;line-height:1.5; }
.lock-msg.err { display:block;background:var(--err-bg);border:1px solid rgba(239,68,68,.25);color:var(--err); }
.lock-msg.ok  { display:block;background:var(--ok-bg);border:1px solid rgba(34,197,94,.25);color:var(--ok); }
.lock-msg.warn{ display:block;background:var(--warn-bg);border:1px solid rgba(245,158,11,.25);color:var(--warn); }

.lock-footer { padding:16px 28px;border-top:1px solid var(--border);text-align:center;font-size:12px;color:var(--text3);display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap; }
.lock-footer a { color:#9fe6c9;text-decoration:none; }
.lock-footer a:hover { text-decoration:underline; }
.lock-footer .sep { color:var(--border2); }

/* ── INSTALL PILL PWA ── */
.install-pill { position:fixed;left:16px;bottom:16px;z-index:400;display:flex;align-items:center;gap:10px;
  padding:10px 12px 10px 14px;background:rgba(17,21,17,.92);backdrop-filter:blur(14px);
  border:1px solid var(--border2);border-radius:16px;
  box-shadow:0 10px 32px rgba(0,0,0,.55),0 0 0 1px rgba(52,211,153,.1);
  max-width:calc(100vw - 32px);animation:inst-in .3s ease; }
@keyframes inst-in { from { opacity:0;transform:translateY(12px) } to { opacity:1;transform:none } }
.inst-ico { font-size:22px; }
.inst-txt { display:flex;flex-direction:column;line-height:1.25;min-width:0; }
.inst-txt b { font-size:12.5px;color:var(--text);white-space:nowrap; }
.inst-txt small { font-size:10.5px;color:var(--text3);white-space:nowrap; }
.inst-btn { background:var(--grad);border:none;color:#06301f;font-weight:700;font-size:12px;
  padding:8px 14px;border-radius:10px;cursor:pointer;white-space:nowrap; }
.inst-x { background:none;border:none;color:var(--text3);font-size:13px;cursor:pointer;padding:4px 6px; }
.inst-x:hover { color:var(--text); }

/* ── BANNER GRUP WHATSAPP — aksen hijau WA, tetap selaras tema emerald ── */

.wa-banner { display:flex;align-items:center;gap:14px;max-width:560px;margin:22px auto 10px;padding:14px 18px;
  background:linear-gradient(135deg,rgba(37,211,102,.12),rgba(52,211,153,.08));
  border:1px solid rgba(37,211,102,.35);border-radius:14px;text-decoration:none;
  transition:transform .15s,border-color .2s,box-shadow .2s; }
.wa-banner:hover { transform:translateY(-2px);border-color:rgba(37,211,102,.65);box-shadow:0 8px 24px rgba(37,211,102,.15); }
.wa-icon { font-size:26px;flex-shrink:0; }
.wa-body { flex:1;min-width:0; }
.wa-title { font-size:14px;font-weight:700;color:#fff;margin-bottom:3px; }
.wa-sub   { font-size:12px;color:var(--text2);line-height:1.4; }
.wa-arrow { font-size:18px;color:#25d366;font-weight:700;flex-shrink:0; }
.wa-cta   { font-size:12px;font-weight:700;color:#062c17;background:#25d366;padding:7px 12px;border-radius:999px;flex-shrink:0;white-space:nowrap; }
/* versi slim di dashboard: full-width, nempel topbar */
.wa-banner-slim { max-width:800px;margin:0 auto;border-radius:0;border-left:none;border-right:none;border-top:none;padding:11px 18px; }
.wa-banner-slim:hover { transform:none; }


/* ── DASHBOARD ── */
#screen-dash { display:none;min-height:100vh;flex-direction:column; }
/* mobile: flex-wrap agar brand & tombol tidak overflow; padding lebih kecil */
.topbar { display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;gap:8px;flex-wrap:wrap; }
.topbar-brand { font-size:15px;font-weight:800;background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.topbar-right { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.badge-ok { font-size:11px;color:var(--ok);background:var(--ok-bg);border:1px solid rgba(34,197,94,.2);border-radius:20px;padding:3px 9px;font-family:'JetBrains Mono',monospace; }
.btn-sm { background:var(--surface2);border:1px solid var(--border2);border-radius:7px;color:var(--text3);font-size:11px;padding:4px 9px;cursor:pointer;transition:all .15s; }
.btn-sm:hover { color:var(--err);border-color:var(--err); }

/* ── BOTTOM TAB NAV — floating pill, full-width mobile, tanpa geser ── */
.tab-nav { position:fixed;left:50%;transform:translateX(-50%);bottom:12px;z-index:300;
  display:flex;gap:2px;padding:5px;width:calc(100vw - 16px);max-width:560px;overflow:visible;
  background:rgba(17,21,17,.78);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid var(--border2);border-radius:22px;
  box-shadow:0 10px 40px rgba(0,0,0,.55),0 0 0 1px rgba(52,211,153,.08),inset 0 1px 0 rgba(255,255,255,.05); }
.tab-nav::-webkit-scrollbar { display:none; }
/* 5 tab memenuhi lebar layar HP — ikon di atas, label pendek di bawah */
.tab-btn { flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:7px 2px;background:none;border:none;color:var(--text2);font-size:9.5px;font-weight:600;
  cursor:pointer;transition:all .2s;border-radius:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.1px; }
.tab-btn .tb-ico { font-size:16px;line-height:1; }
.tab-btn:hover { color:var(--text);background:var(--surface3); }
.tab-btn.active { color:#fff;background:var(--grad);box-shadow:0 4px 18px rgba(52,211,153,.35); }
/* ruang bawah konten supaya tidak ketutup floating nav */
#screen-dash { padding-bottom:100px; }

/* mobile: padding lebih kecil */
.tab-pane { display:none;padding:14px;max-width:800px;margin:0 auto;width:100%; }
.tab-pane.active { display:block; }

/* Token & tutorial */
.announce { padding:13px 16px;background:linear-gradient(135deg,rgba(52,211,153,.08),rgba(110,231,183,.08));border:1px solid rgba(52,211,153,.2);border-radius:11px;font-size:13px;margin-bottom:16px; }
.date-lbl { font-size:11px;color:var(--text3);margin-bottom:14px; }
.loading-st { text-align:center;padding:40px;color:var(--text2);font-size:14px; }
.spin20 { width:20px;height:20px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 10px; }
.fetch-err { padding:14px;background:var(--err-bg);border:1px solid rgba(239,68,68,.2);border-radius:11px;font-size:13px;color:var(--err);display:none; }
.token-grid { display:grid;gap:12px; }
.token-card { background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:16px 18px;transition:border-color .2s; }
.token-card:hover { border-color:var(--border2); }
.tok-head { display:flex;align-items:center;justify-content:space-between;margin-bottom:10px; }
.tok-prov { font-size:14px;font-weight:600;display:flex;align-items:center;gap:7px; }
.pill { font-size:11px;font-weight:600;padding:2px 9px;border-radius:20px; }
.pill-ok  { background:var(--ok-bg);color:var(--ok);border:1px solid rgba(34,197,94,.2); }
.pill-err { background:var(--err-bg);color:var(--err);border:1px solid rgba(239,68,68,.2); }
.pill-warn{ background:var(--warn-bg);color:var(--warn);border:1px solid rgba(245,158,11,.2); }
.tok-model { font-size:12px;color:var(--text2);margin-bottom:9px; }
.tok-key-row { display:flex;align-items:center;gap:8px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 11px;margin-bottom:8px; }
.tok-key { font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--accent);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.tok-meta { font-size:11px;color:var(--text2); }
.tok-note { font-size:11px;color:var(--text3);margin-top:6px;font-style:italic; }
.copy-btn { background:var(--surface2);border:1px solid var(--border2);border-radius:7px;color:var(--text2);font-size:11px;padding:4px 9px;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0; }
.copy-btn:hover { color:var(--ok);border-color:var(--ok); }
.copy-btn.copied { color:var(--ok);border-color:var(--ok); }

.tut-list { display:grid;gap:10px; }
.tut-card { background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:16px 18px;display:flex;align-items:flex-start;gap:12px;text-decoration:none;transition:border-color .2s,transform .15s; }
.tut-card:hover { border-color:var(--accent);transform:translateY(-1px); }
.tut-emoji { font-size:26px;flex-shrink:0;margin-top:1px; }
.tut-body { flex:1; }
.tut-title { font-size:14px;font-weight:600;color:var(--text);margin-bottom:5px; }
.tut-desc  { font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:8px; }
.tut-meta  { display:flex;gap:10px;font-size:11px; }
.lvl { padding:2px 7px;border-radius:20px;font-weight:500; }
.lvl-p { background:var(--ok-bg);color:var(--ok); }
.lvl-m { background:var(--warn-bg);color:var(--warn); }
.lvl-l { background:rgba(110,231,183,.1);color:#d3f08a; }
.tut-dur { color:var(--text3); }
.tut-arr { color:var(--text3);align-self:center;flex-shrink:0; }

/* API Checker */
.ck-tabs { display:flex;gap:5px;background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:5px;margin-bottom:18px;flex-wrap:wrap; }
.ctab { flex:1;min-width:72px;padding:7px 10px;border-radius:7px;border:none;background:transparent;color:var(--text2);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:5px; }
.ctab:hover { color:var(--text);background:var(--surface3); }
.ctab.active { background:var(--surface3);color:var(--text);border:1px solid var(--border2); }
.ctab-dot { width:6px;height:6px;border-radius:50%; }
.ctab[data-p="anthropic"] .ctab-dot { background:#c96442; }
.ctab[data-p="openai"]    .ctab-dot { background:#10a37f; }
.ctab[data-p="google"]    .ctab-dot { background:#4285f4; }
.ctab[data-p="mistral"]   .ctab-dot { background:#ff7000; }
.ctab[data-p="custom"]    .ctab-dot { background:#9acd32; }
.cpanel { display:none; }
.cpanel.active { display:block; }
.ccard { background:var(--surface);border:1px solid var(--border);border-radius:13px;overflow:hidden; }
.ccard-hd { padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px; }
.cpbadge { width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0; }
.cpbadge[data-p="anthropic"] { background:rgba(201,100,66,.15); }
.cpbadge[data-p="openai"]    { background:rgba(16,163,127,.15); }
.cpbadge[data-p="google"]    { background:rgba(66,133,244,.15); }
.cpbadge[data-p="mistral"]   { background:rgba(255,112,0,.15); }
.cpbadge[data-p="custom"]    { background:rgba(139,92,246,.15); }
/* mobile: font-size lebih kecil */
.cpname { font-size:13px;font-weight:600; }
.cpsub  { font-size:11px;color:var(--text2);margin-top:1px; }
/* mobile: padding lebih kecil */
.ccard-bd { padding:14px; }
.fl { font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.6px;display:block;margin-bottom:6px; }
.fw { position:relative;display:flex;align-items:center;margin-bottom:12px; }
.fw input { width:100%;padding:10px 38px 10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:12px;font-family:'JetBrains Mono',monospace;outline:none;transition:border-color .2s; }
.fw input.npr { padding-right:12px; }
.fw input:focus { border-color:var(--border2); }
.fw input::placeholder { color:var(--text3);font-family:'Inter',sans-serif; }
.tvis { position:absolute;right:9px;background:none;border:none;color:var(--text2);cursor:pointer;font-size:14px;padding:2px;transition:color .15s; }
.tvis:hover { color:var(--text); }
.fh { font-size:11px;color:var(--text3);margin-top:-8px;margin-bottom:12px; }
.fh a { color:#9fe6c9;text-decoration:none; }
.presets-w { display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px; }
.ppill { padding:3px 9px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;color:var(--text2);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s; }
.ppill:hover { color:var(--text);background:var(--surface3); }
.ppill.sel { border-color:#9acd32;color:#d3f08a;background:rgba(139,92,246,.12); }
.btn-ck { width:100%;padding:11px;background:var(--grad);border:none;border-radius:9px;color:#06301f;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px; }
.btn-ck:hover { opacity:.9; }
.btn-ck:active { transform:scale(.98); }
.btn-ck:disabled { opacity:.4;cursor:not-allowed; }
.spin16 { width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite; }
.cres { margin-top:10px;padding:11px 13px;border-radius:9px;font-size:12px;display:none;gap:7px;align-items:flex-start; }
.cres.vis { display:flex; }
.cres.ok   { background:var(--ok-bg);border:1px solid rgba(34,197,94,.2); }
.cres.err  { background:var(--err-bg);border:1px solid rgba(239,68,68,.2); }
.cres.warn { background:var(--warn-bg);border:1px solid rgba(245,158,11,.2); }
.cres-ttl { font-weight:600;margin-bottom:2px; }
.cres.ok   .cres-ttl { color:var(--ok); }
.cres.err  .cres-ttl { color:var(--err); }
.cres.warn .cres-ttl { color:var(--warn); }
.cres-det { color:var(--text2);font-family:'JetBrains Mono',monospace;line-height:1.5;word-break:break-all; }
.sec-note { margin-top:10px;padding:9px 12px;background:rgba(52,211,153,.06);border:1px solid rgba(52,211,153,.15);border-radius:8px;font-size:11px;color:var(--text3);display:flex;gap:5px;line-height:1.5; }
.hdiv { border:none;border-top:1px solid var(--border);margin:14px 0; }

/* ── LANDING PAGE (publik, sebelum aktivasi) ── */
#screen-landing { width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:0 0 60px;overflow-x:hidden;
  background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(52,211,153,.14) 0%,transparent 60%),var(--bg); }
.lp-wrap { width:100%;max-width:860px;padding:0 16px; }

/* mobile: padding lebih compact */
.lp-hero { text-align:center;padding:40px 16px 24px; }
.lp-badge { display:inline-flex;align-items:center;gap:7px;padding:5px 13px;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.25);
  border-radius:20px;font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.8px;text-transform:uppercase;margin-bottom:20px; }
.lp-badge .dot { width:7px;height:7px;border-radius:50%;background:var(--ok);animation:blink 1.6s ease-in-out infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }
.lp-h1 { font-size:clamp(28px,5.5vw,42px);font-weight:800;letter-spacing:-1px;line-height:1.15;margin-bottom:14px; }
.lp-h1 .grad { background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
/* mobile: font lebih kecil, margin bawah lebih kecil */
.lp-sub { color:var(--text2);font-size:14px;line-height:1.7;max-width:620px;margin:0 auto 20px; }
/* mobile: gap lebih kecil */
.lp-stats { display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:22px; }
.lp-stat { text-align:center; }
/* mobile: angka lebih kecil */
.lp-stat b { display:block;font-size:18px;font-weight:800;background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.lp-stat span { font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.6px; }

.lp-features { display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:38px; }
.lp-feat { background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px;transition:border-color .2s,transform .15s; }
.lp-feat:hover { border-color:var(--border2);transform:translateY(-2px); }
.lp-feat .ico { font-size:24px;margin-bottom:10px; }
.lp-feat .t { font-size:14px;font-weight:700;margin-bottom:5px; }
.lp-feat .d { font-size:12px;color:var(--text2);line-height:1.6; }

/* Teaser providers terkunci */
.lp-teaser { margin-bottom:38px; }
.lp-teaser-title { text-align:center;font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px; }
.prov-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px; }
.prov-card { background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:16px;display:flex;flex-direction:column;gap:9px; }
.prov-head { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.prov-name { font-size:14px;font-weight:700;display:flex;align-items:center;gap:7px; }
.prov-badge { font-size:9px;font-weight:800;padding:3px 8px;border-radius:20px;letter-spacing:.6px;white-space:nowrap;
  background:var(--ok-bg);color:var(--ok);border:1px solid rgba(34,197,94,.25); }
.prov-desc { font-size:12px;color:var(--text2);line-height:1.5;flex:1; }
.prov-models { display:flex;flex-wrap:wrap;gap:4px; }
.prov-model { font-family:'JetBrains Mono',monospace;font-size:10px;padding:2px 7px;background:var(--surface2);border:1px solid var(--border);border-radius:5px;color:#d3d9d5; }
.prov-meta { display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--text3); }
.prov-link { color:var(--accent);text-decoration:none;font-size:11px;font-weight:600;white-space:nowrap; }
.prov-link:hover { text-decoration:underline; }
.prov-cara { font-size:11px;color:var(--text3);line-height:1.55;padding:9px 11px;background:var(--surface2);border:1px solid var(--border);border-radius:8px; }

.lp-teaser .prov-card { position:relative; }
.lp-teaser .prov-card .blur { filter:blur(4px);user-select:none;pointer-events:none; }
.lp-teaser .prov-lock { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;border-radius:13px;background:rgba(10,12,16,.35); }

/* Pricing / CTA — mobile: padding lebih kecil */
.lp-offer { background:linear-gradient(135deg,rgba(52,211,153,.1),rgba(110,231,183,.1));border:1px solid rgba(52,211,153,.3);border-radius:18px;
  padding:22px 16px;text-align:center;margin-bottom:28px; }
.lp-offer h2 { font-size:22px;font-weight:800;margin-bottom:8px; }
.lp-offer p { color:var(--text2);font-size:13px;line-height:1.7;max-width:520px;margin:0 auto 20px; }
.lp-offer-list { display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;font-size:12px;color:var(--text2);margin-bottom:22px; }
/* mobile: tombol lebih kecil */
.btn-buy { display:inline-flex;align-items:center;gap:9px;padding:12px 24px;background:var(--grad);border:none;border-radius:11px;color:#06301f;
  font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;transition:opacity .2s,transform .1s;box-shadow:0 8px 28px rgba(52,211,153,.35); }
.btn-buy:hover { opacity:.92; }
.btn-buy:active { transform:scale(.98); }
.lp-offer-note { font-size:11px;color:var(--text3);margin-top:14px; }

/* Bagian aktivasi di landing */
.lp-activate-wrap { display:flex;justify-content:center; }
.lp-activate-label { text-align:center;font-size:12px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px; }

/* Database section di dashboard */
.db-sec { margin-bottom:26px; }
.db-sec h3 { font-size:15px;font-weight:700;margin-bottom:3px; }
.db-sub { font-size:12px;color:var(--text3);margin-bottom:12px; }

/* ── ONBOARDING wizard ── */
.ob-hero { text-align:center;padding:6px 0 18px; }
.ob-hero-t { font-size:17px;font-weight:800;margin-bottom:5px; }
.ob-hero-s { font-size:12px;color:var(--text2);line-height:1.6;max-width:520px;margin:0 auto; }
.ob-chips { display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 18px; }
.ob-chip { padding:7px 13px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;color:var(--text2);
  font-size:12px;font-weight:600;cursor:pointer;transition:all .15s; }
.ob-chip:hover { color:var(--text);background:var(--surface3); }
.ob-chip.sel { border-color:var(--accent);color:var(--accent);background:rgba(52,211,153,.1); }
.ob-path { background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden; }
/* mobile: padding dan gap dikecilkan */
.ob-path-hd { padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:8px; }
/* mobile: emoji lebih kecil */
.ob-path-ico { font-size:20px;flex-shrink:0; }
.ob-path-title { font-size:15px;font-weight:700;margin-bottom:3px; }
.ob-path-sub { font-size:12px;color:var(--text2);line-height:1.55; }
.ob-level { margin-left:auto;flex-shrink:0;font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px; }
.lv-p { background:var(--ok-bg);color:var(--ok);border:1px solid rgba(34,197,94,.2); }
.lv-m { background:var(--warn-bg);color:var(--warn);border:1px solid rgba(245,158,11,.2); }
.ob-steps { padding:16px 18px;display:flex;flex-direction:column;gap:14px; }
.ob-step { display:flex;gap:12px; }
.ob-num { width:26px;height:26px;flex-shrink:0;border-radius:50%;background:var(--surface3);border:1px solid var(--border2);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--accent); }
.ob-body { flex:1;min-width:0; }
.ob-step-t { font-size:13px;font-weight:600;margin-bottom:4px; }
.ob-step-a { font-size:12px;color:var(--text2);line-height:1.6; }
.ob-code { margin-top:8px;display:flex;align-items:flex-start;gap:8px;background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:9px 11px; }
.ob-code-t { font-family:'JetBrains Mono',monospace;font-size:11px;color:#b8e63a;flex:1;white-space:pre-wrap;word-break:break-all;line-height:1.5; }
.ob-copy { background:none;border:1px solid var(--border2);border-radius:6px;color:var(--text2);font-size:10px;padding:3px 8px;cursor:pointer;flex-shrink:0;transition:all .15s; }
.ob-copy:hover { color:var(--ok);border-color:var(--ok); }
.ob-copy.copied { color:var(--ok);border-color:var(--ok); }

/* ── Search & filter database ── */
.db-toolbar { margin-bottom:16px;display:flex;flex-direction:column;gap:9px; }
.db-search { width:100%;padding:12px 15px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;
  color:var(--text);font-size:13px;outline:none;transition:border-color .2s;font-family:'Inter',sans-serif; }
.db-search:focus { border-color:var(--accent); }
.db-search::placeholder { color:var(--text3); }
.db-filters { display:flex;flex-wrap:wrap;gap:5px; }
.db-fchip { padding:5px 11px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;color:var(--text2);
  font-size:11px;font-weight:600;cursor:pointer;transition:all .15s; }
.db-fchip:hover { color:var(--text);background:var(--surface3); }
.db-fchip.sel { border-color:var(--accent);color:var(--accent);background:rgba(52,211,153,.1); }
.db-count { font-size:11px;color:var(--text3); }
.db-empty { text-align:center;padding:36px 16px;color:var(--text3);font-size:13px; }
.hm { background:rgba(52,211,153,.22);border-radius:2px;color:var(--text);padding:0 1px; }

/* Model dropdown di checker */
.ck-msel { width:100%;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:12px;font-family:'JetBrains Mono',monospace;outline:none;cursor:pointer;transition:border-color .2s; }
.ck-msel:focus { border-color:var(--accent); }

/* ── RANKING MODEL (tab baru) ── */
.rk-hero { text-align:center;padding:4px 0 16px; }
.rk-hero-t { font-size:17px;font-weight:800;margin-bottom:5px; }
.rk-hero-s { font-size:12px;color:var(--text2);line-height:1.6;max-width:560px;margin:0 auto; }
.rk-guide { display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px; }
.rk-tier-pill { flex:1;min-width:180px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-size:11px;color:var(--text2);line-height:1.5; }
.rk-tier-pill b { display:inline-flex;width:20px;height:20px;border-radius:6px;align-items:center;justify-content:center;margin-right:6px;font-size:12px; }
.rk-tier-S b { background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff; }
.rk-tier-A b { background:linear-gradient(135deg,#34d399,#a06af8);color:#fff; }
.rk-tier-B b { background:var(--surface3);color:var(--accent);border:1px solid var(--border2); }
.rk-list { display:flex;flex-direction:column;gap:10px; }
.rk-item { background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:14px 16px;display:flex;gap:14px;flex-wrap:wrap;transition:border-color .2s; }
.rk-item:hover { border-color:var(--border2); }
.rk-tier-S { border-left:3px solid #f59e0b; }
.rk-tier-A { border-left:3px solid #34d399; }
.rk-tier-B { border-left:3px solid var(--border2); }
.rk-main { flex:1;min-width:220px; }
.rk-name { font-size:14px;font-weight:700;display:flex;align-items:center;gap:7px;margin-bottom:5px; }
.rk-tb { width:20px;height:20px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0; }
.rk-tb-S { background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff; }
.rk-tb-A { background:linear-gradient(135deg,#34d399,#a06af8);color:#fff; }
.rk-tb-B { background:var(--surface3);color:var(--accent);border:1px solid var(--border2); }
.rk-bench { font-size:12px;color:var(--text);line-height:1.55;margin-bottom:5px; }
.rk-note { font-size:11px;color:var(--text3);line-height:1.5;margin-bottom:7px; }
.rk-guna { display:flex;flex-wrap:wrap;gap:4px; }
.rk-gchip { font-size:10px;padding:3px 8px;border-radius:12px;background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;transition:all .15s; }
.rk-gchip:hover { border-color:var(--accent);color:var(--accent); }
.rk-side { min-width:200px;flex:0 0 220px;border-left:1px dashed var(--border);padding-left:14px; }
.rk-via-lbl { font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px; }
.rk-via-row { display:flex;flex-wrap:wrap;gap:5px; }
.rk-via { font-size:11px;padding:5px 10px;border-radius:8px;background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.25);color:var(--accent);cursor:pointer;transition:all .15s;font-family:'Inter',sans-serif; }
.rk-via:hover { background:rgba(52,211,153,.18);transform:translateY(-1px); }
@media (max-width:640px) {
  .rk-item { flex-direction:column;gap:9px; }
  .rk-side { border-left:none;border-top:1px dashed var(--border);padding-left:0;padding-top:9px;flex:1;min-width:0; }
}

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE — mobile-first
   Base: ≤599px (HP 360px+)
   600px+: tablet / HP besar
   900px+: desktop
   ═══════════════════════════════════════════════════════════════════ */

/* ── Mobile base fixes (≤599px) ── */

/* Badge Order ID di topbar: potong kalau terlalu panjang */
.badge-ok {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Provider badge: izinkan wrap, jangan overflow */
.prov-badge {
  white-space: normal;
  word-break: break-word;
  text-align: center;
  max-width: 120px;
}

/* Hero: pastikan ada padding kiri-kanan di mobile */
.lp-hero { padding-left: 16px; padding-right: 16px; }

/* lp-h1: word break untuk judul panjang */
.lp-h1 { word-break: break-word; hyphens: auto; }

/* Stat bar: pastikan wrapping rapi */
.lp-stats { gap: 12px; }
.lp-stat b { font-size: 17px; }

/* Teaser grid: 1 kolom di HP kecil */
.prov-grid { grid-template-columns: 1fr; }

/* Filter chips: lebih kecil di mobile */
.db-fchip { font-size: 10px; padding: 4px 9px; }

/* Onboarding code block: pecah panjang */
.ob-code-t { word-break: break-all; }

/* Checker tab: pastikan wrap rapi */
.ck-tabs { gap: 3px; }
.ctab { min-width: 60px; font-size: 11px; padding: 6px 7px; }

/* Token key: tidak overflow card */
.tok-key { word-break: break-all; white-space: normal; }

/* Prov models: break panjang model name */
.prov-model { word-break: break-all; }

/* Obpath steps: padding lebih compact */
.ob-steps { padding: 12px 14px; }

/* Tut card: pecah baris judul panjang */
.tut-title { word-break: break-word; }

/* Btn buy: full width di HP sangat kecil */
@media (max-width: 380px) {
  .btn-buy { width: 100%; justify-content: center; font-size: 13px; padding: 12px 16px; }
  .lp-offer p { font-size: 12px; }
  .lp-offer h2 { font-size: 19px; }
}

/* ── 600px+ ── */
@media (min-width:600px) {
  /* layout */
  .topbar      { padding:12px 22px; gap:10px; flex-wrap:nowrap; }
  .tab-nav     { bottom:20px; width:auto; gap:4px; padding:6px; border-radius:999px; }
  .tab-btn     { flex:none; flex-direction:row; gap:6px; padding:9px 18px; font-size:13px; border-radius:999px; }
  .tab-btn .tb-ico { font-size:14px; }
  .tab-pane    { padding:22px; }
  .lp-wrap     { padding:0 22px; }
  /* lock card */
  .lock-top    { padding:32px 28px 24px; }
  .lock-body   { padding:24px 28px 28px; }
  /* landing hero */
  .lp-hero     { padding:56px 22px 28px; }
  .lp-sub      { font-size:15px; margin-bottom:26px; }
  .lp-stats    { gap:20px; margin-bottom:26px; }
  .lp-stat b   { font-size:20px; }
  /* offer */
  .lp-offer    { padding:32px 26px; margin-bottom:40px; }
  .btn-buy     { width:auto; padding:14px 34px; font-size:16px; }
  /* checker */
  .cpname      { font-size:14px; }
  .ccard-hd    { padding:14px 18px; }
  .ccard-bd    { padding:18px; }
  /* onboarding */
  .ob-path-hd  { padding:16px 18px; gap:12px; }
  .ob-path-ico { font-size:26px; }
  /* DB */
  .prov-grid   { grid-template-columns: repeat(auto-fill, minmax(250px,1fr)); }
  .prov-badge  { max-width: none; white-space: nowrap; }
  /* filter chips */
  .db-fchip    { font-size:11px; padding:5px 11px; }
  /* checker tab */
  .ctab        { min-width:72px; font-size:12px; padding:7px 10px; }
  /* badge */
  .badge-ok    { max-width: none; }
  /* token key */
  .tok-key     { white-space: nowrap; word-break: normal; }
}

/* ── 900px+ ── */
@media (min-width:900px) {
  .lp-hero   { padding:74px 22px 34px; }
  .lp-stats  { gap:26px; margin-bottom:30px; }
  .lp-stat b { font-size:22px; }
}
