/* Public tools: package comparison, free checker and metric reference. */
.price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--s-line);border-radius:5px;overflow:hidden}.price-card{padding:30px 28px;display:flex;flex-direction:column;position:relative;background:var(--s-surface)}.price-card+.price-card{border-left:1px solid var(--s-line)}.price-card.popular{background:var(--s-raised);box-shadow:inset 0 2px var(--s-accent)}.price-badge{align-self:flex-start;position:absolute;right:22px;top:28px;font:9px/1.5 var(--s-mono);text-transform:uppercase;letter-spacing:.6px;border:1px solid var(--s-line);padding:4px 8px;color:var(--s-text)}.price-name{font:12px var(--s-mono);text-transform:uppercase;letter-spacing:1px;margin-bottom:32px}.price-amt{font-size:clamp(28px,3vw,42px);letter-spacing:-1.6px;font-weight:500;line-height:1.2;white-space:nowrap}.price-amt .cur{font-size:13px;letter-spacing:0;margin-right:6px;color:var(--s-muted)}.price-per{font:10px/1.8 var(--s-mono);color:var(--s-muted);margin-top:10px}.price-bulk{border-block:1px solid var(--s-line);padding:17px 0;margin:26px 0 18px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--s-muted)}.price-bulk strong{font-weight:500;color:var(--s-text)}.price-bulk i{font-size:12px}.price-feat{padding:0;margin:0 0 24px;list-style:none;flex:1}.price-feat li{display:flex;gap:5px;flex-wrap:wrap;align-items:baseline;font-size:13px;color:var(--s-muted);padding:6px 0}.price-feat li::before{content:'✓';margin-right:6px;font-size:11px;color:var(--s-muted)}.price-feat strong{font-weight:500;color:var(--s-text)}.price-cta{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:12px;border:1px solid var(--s-line);border-radius:3px;background:transparent;color:var(--s-text);font:10px/1.6 var(--s-mono);text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .2s}.price-cta:hover{background:var(--s-raised)}.popular .price-cta{background:var(--s-accent);border-color:var(--s-accent);color:var(--s-on-accent)}.price-note{font-size:12px;color:var(--s-muted);line-height:1.8;margin:18px 0 36px!important;max-width:800px}.price-usage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--s-line);margin:32px 0 50px}.price-usage>div{padding:22px 24px}.price-usage>div:first-child{padding-left:0}.price-usage>div+div{border-left:1px solid var(--s-line)}.price-usage span{display:block;font:9px var(--s-mono);text-transform:uppercase;letter-spacing:.6px;color:var(--s-muted);margin-bottom:10px}.price-usage strong{font-weight:500;font-size:21px;letter-spacing:-.5px}.price-usage p{font-size:12px;line-height:1.8;color:var(--s-muted);margin-top:7px!important}.studio-public .pricing-faq{max-width:none;margin:0;display:grid;grid-template-columns:1fr 1.7fr;gap:60px}.pricing-faq>h2{margin:0!important;font-size:30px!important;letter-spacing:-1px!important}.pricing-faq .faq{margin:0}
.ck-wrap{max-width:none;margin:0 auto}.ck-intake{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:42px;align-items:start;margin-bottom:40px}.ck-card{padding:28px;background:var(--s-surface);border:1px solid var(--s-line);border-radius:5px}.ck-label{display:flex;align-items:center;gap:10px;font:10px var(--s-mono);text-transform:uppercase;margin-bottom:18px;flex-wrap:wrap}.ck-label i{font-size:13px}.ck-count-badge{margin-left:auto;color:var(--s-muted);font-size:10px}.ck-textarea{display:block;width:100%;min-height:158px;resize:vertical;border:1px solid var(--s-line);border-radius:3px;background:var(--s-bg);color:var(--s-text);padding:16px;font:12px/1.9 var(--s-mono)!important}.ck-textarea:focus{border-color:var(--s-muted)}/* Aturan fokus global memberi outline 2px berjarak 2px dari tepi. Di sini
   tepi itu sudah ditandai border kolomnya sendiri, jadi keduanya terbaca
   sebagai dua kotak. Outline dirapatkan ke border (offset 0, 1px) supaya
   menyatu jadi satu garis — sama seperti .form-control di studio-forms.css.
   Selektor diawali .studio-page agar cukup kuat mengalahkan aturan global. */
.studio-page .ck-textarea:focus-visible{outline:1px solid var(--s-muted);outline-offset:0}.ck-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:12px 0 0}.ck-hint{font:9px/1.7 var(--s-mono);color:var(--s-muted)}.ck-btn{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--s-accent);background:var(--s-accent);color:var(--s-on-accent);border-radius:3px;margin-top:20px;padding:12px;font:11px var(--s-mono)!important;text-transform:uppercase;cursor:pointer}.ck-btn:hover:not(:disabled){filter:brightness(1.04)}.ck-btn:disabled,.ck-textarea:disabled{opacity:.65;cursor:not-allowed}.ck-btn .fa-spinner{display:none}.ck-btn.loading .fa-bolt{display:none}.ck-btn.loading .fa-spinner{display:inline-block}.ck-quota-warn{display:flex;align-items:baseline;gap:10px;font-size:12px;line-height:1.8;color:var(--s-muted);margin-top:16px!important}.ck-brief{padding:12px 0}.ck-brief>h2{font-size:27px;line-height:1.25;font-weight:500;letter-spacing:-.7px;max-width:320px;margin-top:16px!important}.ck-brief-list{list-style:none;margin:24px 0;padding:0}.ck-brief-list li{padding:16px 0;border-bottom:1px solid var(--s-line);display:grid;grid-template-columns:34px 1fr;column-gap:15px}.ck-brief-list span{font:10px var(--s-mono);color:var(--s-muted);padding-top:5px}.ck-brief-list strong{font-size:14px;font-weight:500}.ck-brief-list p{grid-column:2;font-size:12px;line-height:1.8;color:var(--s-muted);margin-top:5px!important}.ck-brief-note{font-size:12px;line-height:1.8;color:var(--s-muted)}.ck-brief-note a{text-underline-offset:4px}.faq-wrap{max-width:820px;margin:48px auto 0}.faq-head{font-size:26px;font-weight:500;letter-spacing:-.7px;padding-bottom:24px;border-bottom:1px solid var(--s-line)}.faq-head i{display:none}.faq-item{border-bottom:1px solid var(--s-line)}.faq-q{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:20px 0;color:var(--s-text);border:0;background:none;text-align:left;font:500 14px/1.6 var(--s-font);cursor:pointer}.faq-q i{font-size:10px;color:var(--s-muted);transition:transform .2s}.faq-item.open .faq-q i{transform:rotate(180deg)}.faq-a{display:none;padding:0 28px 20px 0;color:var(--s-muted);font-size:14px;line-height:1.85}.faq-item.open .faq-a{display:block}.faq-a a{color:var(--s-text);text-underline-offset:4px}
/* Modal and result state styling retained without downloading the old landing sheet. */
.tkq-overlay,.ckp-overlay{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;padding:20px;background:#000b}.tkq-overlay.show,.ckp-overlay.show{display:flex}.tkq-box,.ckp-box{width:100%;max-width:420px;max-height:90vh;overflow:auto;border:1px solid var(--s-line);border-radius:6px;background:var(--s-surface);box-shadow:0 30px 70px -20px #0008}.ckp-box{max-width:560px}.tkq-head,.ckp-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border-bottom:1px solid var(--s-line)}.tkq-head h3,.ckp-head h3{display:flex;gap:10px;font-size:15px;font-weight:500;align-items:center}.tkq-close{width:32px;height:32px;border:1px solid var(--s-line);color:var(--s-text);background:transparent;border-radius:3px;cursor:pointer}.tkq-body,.ckp-body{padding:24px}.tkq-body{text-align:center}.tkq-loading{padding:30px 0;color:var(--s-muted)}.tkq-qr{display:inline-block;background:white;padding:14px;border-radius:3px;margin-bottom:20px}.tkq-qr img{width:208px;height:208px;object-fit:contain}.tkq-amt{font-size:13px;color:var(--s-muted);margin-bottom:14px}.tkq-amt strong{display:block;font:22px var(--s-mono);color:var(--s-text);margin-top:5px}.tkq-note{font-size:12px;color:var(--s-muted);line-height:1.8;margin-bottom:18px!important}.tkq-status{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--s-line);font-size:12px;color:var(--s-text)}.tkq-dot{width:6px;height:6px;border-radius:50%;background:var(--s-accent)}.tkq-meta{display:flex;justify-content:space-between;gap:12px;color:var(--s-muted);font:10px/1.7 var(--s-mono);margin-top:18px}.tkq-done{padding:20px 0}.tkq-done-ic{width:48px;height:48px;margin:0 auto 16px;display:grid;place-items:center;border:1px solid var(--s-line);color:var(--green);border-radius:50%}.tkq-done h3{font-size:20px;font-weight:500}.tkq-done p{font-size:13px;color:var(--s-muted);margin:14px 0 20px!important}.ds-spinner{width:30px;height:30px;margin:0 auto 14px;border:2px solid var(--s-line);border-top-color:var(--s-accent);border-radius:50%;animation:st-spin .8s linear infinite}@keyframes st-spin{to{transform:rotate(360deg)}}.ckp-counter,.ckp-stats{font:10px var(--s-mono);color:var(--s-muted)}.ckp-now{font-size:13px;color:var(--s-muted);margin-bottom:14px}.ckp-track{height:3px;background:var(--s-line);overflow:hidden}.ckp-fill{height:100%;width:0;background:var(--s-accent);transition:width .25s}.ckp-stats{display:flex;gap:20px;margin:17px 0}.ckp-stat{display:flex;align-items:center;gap:7px}.ckp-dot{width:5px;height:5px;border-radius:50%;background:var(--green)}.ckp-dot.err{background:var(--red)}.ckp-log{display:grid;gap:7px}.ckp-row{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--s-line);font-size:12px;flex-wrap:wrap}.ckp-row img{width:16px;height:16px}.ckp-row-dom{flex:1;overflow-wrap:anywhere}.ckp-row-state{color:var(--s-muted);font-size:11px}.ckp-row.live .ckp-row-state{color:var(--green)}.ckp-row.err .ckp-row-state{color:var(--red)}.ck-toast{position:fixed;top:90px;left:50%;transform:translate(-50%,-10px);max-width:calc(100% - 40px);z-index:1400;padding:14px 18px;display:flex;gap:10px;align-items:baseline;background:var(--s-surface);border:1px solid var(--s-line);font-size:13px;line-height:1.7;opacity:0;pointer-events:none;transition:.2s}.ck-toast.show{opacity:1;transform:translate(-50%,0)}.ck-toast-error{color:var(--red)}.ck-rsum{display:flex;align-items:center;flex-wrap:wrap;gap:28px;padding:24px 0;border-block:1px solid var(--s-line);margin:28px 0}.ck-rs-item{display:flex;align-items:center;gap:14px}.ck-rs-ico{color:var(--s-muted);font-size:18px}.ck-rs-val{font-size:25px;font-weight:500}.ck-rs-lbl{font:10px/1.8 var(--s-mono);color:var(--s-muted)}.ck-rs-dom{font-size:14px}.ck-rs-div{width:1px;height:35px;background:var(--s-line)}.fc-result-head{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:22px 0 14px}.fc-chip{font:10px var(--s-mono);color:var(--green)}.fc-upsell{font-size:12px;color:var(--s-muted)}.fc-upsell a{color:var(--s-text);text-underline-offset:4px}.fc-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--s-line);background:var(--s-surface);border-radius:3px}.fc-table{width:100%;min-width:880px;border-collapse:collapse}.fc-table th{font:9px/1.7 var(--s-mono);text-transform:uppercase;letter-spacing:.4px;color:var(--s-muted);white-space:nowrap}.fc-table :is(th,td){padding:16px 14px;text-align:left;border-bottom:1px solid var(--s-line)}.fc-table .center{text-align:center}.fc-table td{font-size:12px;white-space:nowrap}.fc-table tr:last-child td{border-bottom:0}.fc-table tr:hover td{background:var(--s-raised)}.ds-dom-wrap{display:inline-flex;align-items:center;gap:10px}.ds-favicon{width:16px;height:16px}.ds-val{font:12px var(--s-mono)}.ck-metric{display:inline-flex;gap:7px;align-items:center}.ck-dot{width:8px;height:8px;border-radius:50%}.q-good{background:var(--green)}.q-bad{background:var(--red)}.q-mid{background:var(--s-accent)}.ck-bar{height:5px;width:38px;border-radius:3px;background:var(--s-line);overflow:hidden}.ck-bar-fill{display:block;height:100%;border-radius:3px}.fc-lock-cell{display:inline-flex;align-items:center;justify-content:center;position:relative;min-width:50px}.fc-fake{display:none}.fc-tag{color:var(--s-muted);font-size:10px}.fc-lock-cell::after{content:'Token';font:9px var(--s-mono);color:var(--s-muted);margin-left:5px}.fc-ip{font:10px var(--s-mono);color:var(--s-muted)}.fc-ip.same-ip{color:var(--s-accent-ink)}.cta-box{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;border-bottom:1px solid var(--s-line)}.cta-box h3{font-size:22px;font-weight:500;letter-spacing:-.5px}.cta-box h3 i{display:none}.cta-box p{font-size:13px;color:var(--s-muted);line-height:1.8;max-width:620px;margin-top:12px!important}.cta-box .btn{flex-shrink:0}
/* Reference tables and metric definitions. */
.metric-card{border:1px solid var(--s-line);background:var(--s-surface);padding:24px;margin:18px 0;border-radius:3px}.metric-top{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}.metric-abbr{font:12px var(--s-mono);border-right:1px solid var(--s-line);padding-right:15px;min-width:45px;color:var(--s-text)}.metric-name{font-size:16px;font-weight:500}.metric-src{margin-left:auto;font:9px var(--s-mono);text-transform:uppercase;color:var(--s-muted)}.studio-public .metric-card p{font-size:14px}.studio-public .metric-card p:last-child{margin-bottom:0}.metric-scale{display:flex;align-items:center;gap:12px;font:10px var(--s-mono);color:var(--s-muted);margin-top:22px}.metric-scale .track{height:3px;flex:1;background:var(--s-line)}.metric-scale .track i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--s-line),var(--green))}.metric-scale .track i.down{background:linear-gradient(90deg,var(--s-line),var(--red))}.metric-scale .track i.dr{background:linear-gradient(90deg,var(--s-line),var(--blue))}.tier-box{margin:24px 0;border-block:1px solid var(--s-line)}.tier{display:grid;grid-template-columns:85px 62px 60px 1fr;gap:14px;align-items:baseline;padding:17px 0;border-bottom:1px solid var(--s-line)}.tier:last-child{border:0}.tier-stars{display:inline-flex;gap:2px;font-size:12px}.tier-stars .fa-star,.tier-stars .fa-star-half-stroke{color:var(--s-mark)}.tier-stars .far.fa-star{color:var(--s-star-off)}.tier-name{font-size:13px;font-weight:500}.tier-range{font:10px var(--s-mono);color:var(--s-muted)}.tier-desc{font-size:12px;line-height:1.8;color:var(--s-muted)}.note-flip{display:flex;gap:16px;padding:20px;border-left:2px solid var(--red);background:var(--s-surface);margin:24px 0}.note-flip i{color:var(--red);padding-top:5px}.studio-public .note-flip p{margin:0;font-size:14px}.src-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:24px 0;border:1px solid var(--s-line)}.src-card{padding:24px}.src-card+.src-card{border-left:1px solid var(--s-line)}.src-logo{height:24px;width:auto;max-width:120px;object-fit:contain;margin-bottom:20px;filter:grayscale(1) brightness(0) invert(1);opacity:.85}:root[data-theme=light] .src-logo{filter:grayscale(1) brightness(0);opacity:.8}.studio-public .src-card p{font-size:13px}.src-card .items{display:flex;flex-wrap:wrap;gap:7px}.src-card .items span{font:9px var(--s-mono);border:1px solid var(--s-line);color:var(--s-muted);padding:5px 7px}
@media(max-width:1000px){.price-card{padding:28px 22px}.price-amt{font-size:34px}.ck-intake{gap:28px}.tier{grid-template-columns:85px 1fr 60px}.tier-desc{grid-column:1/-1}}
@media(max-width:760px){.price-grid{grid-template-columns:1fr}.price-card+.price-card{border-left:0;border-top:1px solid var(--s-line)}.price-card{padding:26px}.price-name{margin-bottom:22px}.price-amt{font-size:39px}.price-bulk{margin-top:20px}.price-badge{top:24px}.price-feat{margin-bottom:20px}.price-usage{grid-template-columns:1fr}.price-usage>div{padding:18px 0}.price-usage>div+div{border-left:0;border-top:1px solid var(--s-line)}.studio-public .pricing-faq{grid-template-columns:1fr;gap:24px}.ck-intake{grid-template-columns:1fr}.ck-brief{padding:8px 0}.ck-brief>h2{max-width:none}.ck-card{padding:22px}.ck-rs-div{display:none}.cta-box{align-items:flex-start;flex-direction:column}.src-grid{grid-template-columns:1fr}.src-card+.src-card{border-left:0;border-top:1px solid var(--s-line)}.faq-head{font-size:24px}.ckp-head h3{font-size:13px}.metric-card{padding:20px}.metric-name{font-size:14px}.metric-top{gap:10px}.metric-src{font-size:9px}}
@media(max-width:380px){.ck-card{padding:18px}.ck-label{gap:8px;font-size:9px}.ck-count-badge{font-size:9px}.ckp-head,.ckp-body{padding:16px}.tier{column-gap:10px}.price-card{padding:22px}.metric-src{margin-left:0}.metric-abbr{min-width:38px;padding-right:10px}}
/* Logged-in checkout shares the same visual controls. */
.studio-public .tkm-item,.studio-public .tkq-in-ref,.studio-public .tkq-in-copy,.studio-public .tkq-rd-btn{border-radius:3px;background:var(--s-bg);border-color:var(--s-line)}.studio-public .tkm-item:hover{transform:none;background:var(--s-raised)}.studio-public .tkm-ic{border-radius:3px;background:var(--s-raised);color:var(--s-text)}.studio-public .tkq-rd-btn{background:var(--s-accent);color:var(--s-on-accent);font:11px var(--s-mono);text-transform:uppercase}.studio-public .tkq-rd-btn:hover{transform:none;filter:none}

/* Turnstile ukuran flexible lebarnya 100% container tapi tidak pernah kurang
   dari 300px. Ruang dalam .ck-card lebih sempit dari itu di layar kecil, jadi
   margin negatif dipakai HANYA sebesar kekurangannya: nol saat container >=
   300px, dan pas menutup selisihnya saat lebih sempit. Tanpa ini widget
   menembus kartu dan memicu geser mendatar. */
#ckTurnstile{min-height:65px;margin-inline:min(0px,calc((100% - 300px) / 2))}

/* ══ Sisa kuota, tepat di atas textarea ══
   Sengaja bukan kotak menyala. Ia keterangan, bukan peringatan -- baru berubah
   emas pada tiga cek terakhir. Penanda yang selalu menyala berhenti dibaca;
   yang menyala hanya saat perlu justru terlihat. */
.ck-quota{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
    padding:9px 12px;margin-bottom:12px;border:1px solid var(--s-line);border-radius:3px;
    font:9px/1.7 var(--s-mono);text-transform:uppercase;letter-spacing:.5px;color:var(--s-muted)}
.ck-quota strong{font-size:12px;font-weight:400;color:var(--s-text);letter-spacing:0}
.ck-quota.is-tipis{border-color:var(--s-accent)}
.ck-quota.is-tipis strong{color:var(--s-accent-ink)}


/* ══ PENYELARASAN TABEL CEK GRATIS ══
   Tabel ini menampilkan kolom yang sama dengan tabel hasil Bulk Metrik, jadi
   ia harus terbaca sebagai tabel yang sama. Angkanya diambil dari pengukuran
   .ba-table.wide dan identik dengan blok penyelarasan tabel pratinjau di
   studio.css -- ketiganya satu tabel, bukan tiga yang mirip.

   Ditulis di akhir berkas supaya menang atas aturan aslinya di atas tanpa
   perlu menaikkan kekhususan, dan supaya bisa dibatalkan utuh. */
.fc-table th{
    font:700 10.5px var(--s-mono);letter-spacing:1px;color:var(--s-muted);
}
.fc-table th{padding:10px 9px}
/* 13,5px: ukuran dasar .ba-table di dashboard. Sel metrik punya ukurannya
   sendiri lewat .ds-val, jadi yang berubah cuma tinggi barisnya. */
.fc-table td{padding:11px 9px;font-size:13.5px}
.fc-table :is(th,td):first-child{padding-left:16px}
.fc-table :is(th,td):last-child{padding-right:16px}

/* Nama domain monospasi: deretan nama lebih mudah dipindai dengan lebar
   aksara tetap -- titik dan garis jatuh di kolom yang sama tiap baris. */
.fc-table td:first-child{font:12.8px var(--s-mono)}
.fc-table .ds-favicon{width:15px;height:15px;border-radius:3px;flex:none}
.fc-table .ds-dom-wrap{gap:8px}

/* Lebar minimum 78px itu yang membuat titik, angka, dan bilah berbaris lurus
   dari satu kolom ke kolom berikutnya. Tanpanya tiap kolom melebar sendiri
   mengikuti isinya dan tidak ada yang sejajar. */
.fc-table .ck-metric{gap:6px;min-width:78px;justify-content:center}
.fc-table .ds-val{
    min-width:22px;text-align:right;font-variant-numeric:tabular-nums;
}
/* flex-basis disebut eksplisit, bukan auto: wadahnya punya min-width 78px,
   dan basis auto membuat sisa ruangnya sempat diperhitungkan ulang. */
/* min-width:0 WAJIB disebut. Bawaan flex item adalah min-width:auto, dan
   di sini ia terhitung 30px -- lebih besar daripada lebar yang diminta,
   jadi bilahnya tetap 30px betapapun width dan flex-basis-nya disetel.
   Itu sebabnya menyetel width:28px saja tidak berpengaruh sama sekali. */
.fc-table .ck-bar{flex:0 0 28px;width:28px;min-width:0}

/* Satuan % pada Spam Score. Ukuran, bobot, dan jaraknya sama dengan
   .ck-satuan di dashboard dan .s-satuan di beranda: 1px dari angkanya
   (gap 6px milik .ck-metric dikurangi margin -5px). */
.fc-table .s-satuan{
    font:500 10.5px var(--s-mono);color:var(--s-muted);margin-left:-5px;flex:none;
}
