/* Code blocks — rendered server-side by inc/class-bub-code.php.
   Every theme sets the same --ctp-* variables; tokens read only those. */

/* ---------- Catppuccin flavors ---------- */
.bub-ccode--mocha,.bub-ccode--auto{--ctp-base:#1e1e2e;--ctp-mantle:#181825;--ctp-crust:#11111b;--ctp-text:#cdd6f4;--ctp-sub:#a6adc8;--ctp-ov0:#6c7086;--ctp-ov2:#9399b2;--ctp-s0:#313244;--ctp-s1:#45475a;--ctp-mauve:#cba6f7;--ctp-red:#f38ba8;--ctp-maroon:#eba0ac;--ctp-peach:#fab387;--ctp-yellow:#f9e2af;--ctp-green:#a6e3a1;--ctp-teal:#94e2d5;--ctp-sky:#89dceb;--ctp-sapphire:#74c7ec;--ctp-blue:#89b4fa;--ctp-pink:#f5c2e7;--ctp-lavender:#b4befe}
.bub-ccode--macchiato{--ctp-base:#24273a;--ctp-mantle:#1e2030;--ctp-crust:#181926;--ctp-text:#cad3f5;--ctp-sub:#a5adcb;--ctp-ov0:#6e738d;--ctp-ov2:#939ab7;--ctp-s0:#363a4f;--ctp-s1:#494d64;--ctp-mauve:#c6a0f6;--ctp-red:#ed8796;--ctp-maroon:#ee99a0;--ctp-peach:#f5a97f;--ctp-yellow:#eed49f;--ctp-green:#a6da95;--ctp-teal:#8bd5ca;--ctp-sky:#91d7e3;--ctp-sapphire:#7dc4e4;--ctp-blue:#8aadf4;--ctp-pink:#f5bde6;--ctp-lavender:#b7bdf8}
.bub-ccode--frappe{--ctp-base:#303446;--ctp-mantle:#292c3c;--ctp-crust:#232634;--ctp-text:#c6d0f5;--ctp-sub:#a5adce;--ctp-ov0:#737994;--ctp-ov2:#949cbb;--ctp-s0:#414559;--ctp-s1:#51576d;--ctp-mauve:#ca9ee6;--ctp-red:#e78284;--ctp-maroon:#ea999c;--ctp-peach:#ef9f76;--ctp-yellow:#e5c890;--ctp-green:#a6d189;--ctp-teal:#81c8be;--ctp-sky:#99d1db;--ctp-sapphire:#85c1dc;--ctp-blue:#8caaee;--ctp-pink:#f4b8e4;--ctp-lavender:#babbf1}
.bub-ccode--latte{--ctp-base:#eff1f5;--ctp-mantle:#e6e9ef;--ctp-crust:#dce0e8;--ctp-text:#4c4f69;--ctp-sub:#6c6f85;--ctp-ov0:#9ca0b0;--ctp-ov2:#7c7f93;--ctp-s0:#ccd0da;--ctp-s1:#bcc0cc;--ctp-mauve:#8839ef;--ctp-red:#d20f39;--ctp-maroon:#e64553;--ctp-peach:#fe640b;--ctp-yellow:#df8e1d;--ctp-green:#40a02b;--ctp-teal:#179299;--ctp-sky:#04a5e5;--ctp-sapphire:#209fb5;--ctp-blue:#1e66f5;--ctp-pink:#ea76cb;--ctp-lavender:#7287fd}
@media (prefers-color-scheme:light){.bub-ccode--auto{--ctp-base:#eff1f5;--ctp-mantle:#e6e9ef;--ctp-crust:#dce0e8;--ctp-text:#4c4f69;--ctp-sub:#6c6f85;--ctp-ov0:#9ca0b0;--ctp-ov2:#7c7f93;--ctp-s0:#ccd0da;--ctp-s1:#bcc0cc;--ctp-mauve:#8839ef;--ctp-red:#d20f39;--ctp-maroon:#e64553;--ctp-peach:#fe640b;--ctp-yellow:#df8e1d;--ctp-green:#40a02b;--ctp-teal:#179299;--ctp-sky:#04a5e5;--ctp-sapphire:#209fb5;--ctp-blue:#1e66f5;--ctp-pink:#ea76cb;--ctp-lavender:#7287fd}}
/* The theme's original palette, mapped onto the same slots. */
.bub-ccode--bub{--ctp-base:var(--ink,#16170f);--ctp-mantle:rgba(255,255,255,0.05);--ctp-crust:var(--ink,#16170f);--ctp-text:#e8e6dd;--ctp-sub:#cfccc0;--ctp-ov0:#6f7166;--ctp-ov2:#8f9184;--ctp-s0:rgba(255,255,255,0.08);--ctp-s1:rgba(255,255,255,0.18);--ctp-mauve:#c6f24e;--ctp-red:#93cfe0;--ctp-maroon:#d3a6e6;--ctp-peach:#e6907c;--ctp-yellow:#e3a878;--ctp-green:#dcc86b;--ctp-teal:#b7c98f;--ctp-sky:#b3b0a2;--ctp-sapphire:#7fbf5f;--ctp-blue:#93cfe0;--ctp-pink:#e0c060;--ctp-lavender:#d3a6e6}

/* ---------- Block ---------- */
.bub-ccode{margin:14px 0;border:1px solid var(--ctp-s0);border-radius:8px;overflow:hidden;background:var(--ctp-base);color:var(--ctp-text);max-width:100%}
.bub-ccode__bar{display:flex;align-items:center;gap:10px;padding:5px 10px;background:var(--ctp-mantle);border-bottom:1px solid var(--ctp-s0);font-family:var(--font-mono,ui-monospace,monospace);font-size:10px;letter-spacing:0.08em;text-transform:uppercase}
.bub-ccode__lang{color:var(--ctp-mauve)}
.bub-ccode__copy{margin-left:auto;background:none;border:1px solid var(--ctp-s1);border-radius:4px;color:var(--ctp-sub);font:inherit;letter-spacing:0.06em;padding:2px 8px;cursor:pointer;text-transform:uppercase}
.bub-ccode__copy:hover,.bub-ccode__copy.is-done{border-color:var(--ctp-green);color:var(--ctp-green)}
.bub-ccode .bub-ccode__pre{display:flex;margin:0;padding:12px 14px;background:transparent;border:0;border-radius:0;overflow-x:auto;color:var(--ctp-text);font-family:var(--font-mono,ui-monospace,monospace);font-size:var(--bub-code-fs,13px);line-height:1.6;white-space:pre;tab-size:var(--bub-code-tab,4);-webkit-overflow-scrolling:touch}
.bub-ccode .bub-ccode__code{display:block;flex:1;min-width:0;background:transparent;border:0;padding:0;color:inherit;font:inherit;white-space:inherit}
.bub-ccode__ln{flex:none;padding-right:12px;margin-right:12px;border-right:1px solid var(--ctp-s0);color:var(--ctp-ov0);text-align:right;user-select:none;white-space:pre}
.bub-ccode.is-wrap .bub-ccode__pre{white-space:pre-wrap;overflow-wrap:anywhere}

/* ---------- Tokens (Catppuccin style guide mapping) ---------- */
.bub-ccode .t-com{color:var(--ctp-ov2);font-style:italic}
.bub-ccode .t-str{color:var(--ctp-green)}
.bub-ccode .t-kw{color:var(--ctp-mauve)}
.bub-ccode .t-fn{color:var(--ctp-blue)}
.bub-ccode .t-bi{color:var(--ctp-red)}
.bub-ccode .t-typ{color:var(--ctp-yellow)}
.bub-ccode .t-num{color:var(--ctp-peach)}
.bub-ccode .t-var{color:var(--ctp-maroon)}
.bub-ccode .t-dec{color:var(--ctp-pink)}
.bub-ccode .t-opt{color:var(--ctp-teal)}
.bub-ccode .t-op{color:var(--ctp-sky)}
.bub-ccode .t-lbl{color:var(--ctp-sapphire);font-weight:600}
.bub-ccode .t-prompt{color:var(--ctp-ov0);user-select:none}

/* ---------- Paste / script body ---------- */
.bub-paste__body.bub-ccode{display:block;background:var(--ctp-base);color:var(--ctp-text);margin:0;padding:16px 18px;overflow:auto;border-radius:10px;font-size:var(--bub-code-fs,13px);tab-size:var(--bub-code-tab,4)}
