.cim-ui-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:var(--cim-control-h);
    padding:0 18px;
    border:1px solid transparent;
    border-radius:var(--cim-btn-radius);
    font-family:var(--cim-font-family);
    font-size:14px;
    font-weight:600;
    line-height:1;
    text-decoration:none!important;
    cursor:pointer;
    transition:background var(--cim-transition-fast),border-color var(--cim-transition-fast),color var(--cim-transition-fast),box-shadow var(--cim-transition-fast),transform var(--cim-transition-fast);
}
.cim-ui-btn:hover { transform:translateY(calc(-1 * var(--cim-btn-hover-lift))); }
.cim-ui-btn:focus-visible { outline:3px solid rgba(var(--cim-orange-rgb),.13); outline-offset:2px; }
.cim-ui-btn[disabled],.cim-ui-btn.is-disabled { opacity:.46; pointer-events:none; transform:none; }
.cim-ui-btn--primary {
    border-color:rgba(var(--cim-orange-rgb),var(--cim-btn-border-opacity));
    background:linear-gradient(180deg,rgba(255,255,255,var(--cim-btn-bg-opacity)),rgba(255,250,247,var(--cim-btn-bg-bottom-opacity)));
    color:var(--cim-color-heading)!important;
    box-shadow:0 5px 18px rgba(var(--cim-orange-rgb),var(--cim-btn-glow-opacity)),inset 0 1px 0 rgba(255,255,255,.95);
}
.cim-ui-btn--primary:hover { background:#fff8f4; border-color:var(--cim-color-orange); box-shadow:0 6px 22px rgba(var(--cim-orange-rgb),var(--cim-btn-hover-glow-opacity)); }
.cim-ui-btn--secondary { border-color:var(--cim-color-border); background:#fff; color:var(--cim-color-heading)!important; }
.cim-ui-btn--secondary:hover { border-color:var(--cim-color-border-strong); background:var(--cim-color-surface-hover); }
.cim-ui-btn--ghost { min-height:auto; padding:5px 0; color:var(--cim-color-heading)!important; background:transparent; }
.cim-ui-btn--ghost:hover { color:var(--cim-color-orange-dark)!important; transform:none; }
.cim-ui-btn--danger { border-color:rgba(197,48,48,.28); background:var(--cim-color-danger-bg); color:var(--cim-color-danger)!important; }


/* Final dark-mode button states: no light fill can leak into a dark cabinet. */
html[data-cim-theme="dark"] .cim-ui-btn--primary {
    border-color:rgba(var(--cim-orange-rgb),.72);
    background:linear-gradient(180deg,color-mix(in srgb,var(--cim-color-surface) 88%,var(--cim-color-orange) 12%),var(--cim-color-surface));
    color:var(--cim-color-heading)!important;
    box-shadow:0 5px 18px rgba(var(--cim-orange-rgb),.08),inset 0 1px 0 rgba(255,255,255,.04);
}
html[data-cim-theme="dark"] .cim-ui-btn--primary:hover,
html[data-cim-theme="dark"] .cim-ui-btn--primary:focus-visible {
    border-color:var(--cim-color-orange);
    background:color-mix(in srgb,var(--cim-color-surface) 82%,var(--cim-color-orange) 18%);
    color:var(--cim-color-heading)!important;
    box-shadow:0 0 0 3px rgba(var(--cim-orange-rgb),.12),0 8px 26px rgba(var(--cim-orange-rgb),.14);
}
html[data-cim-theme="dark"] .cim-ui-btn--secondary {
    border-color:var(--cim-color-border);
    background:var(--cim-color-surface);
    color:var(--cim-color-heading)!important;
}
html[data-cim-theme="dark"] .cim-ui-btn--secondary:hover,
html[data-cim-theme="dark"] .cim-ui-btn--secondary:focus-visible {
    border-color:var(--cim-color-orange);
    background:color-mix(in srgb,var(--cim-color-surface) 92%,var(--cim-color-orange) 8%);
    color:var(--cim-color-heading)!important;
    box-shadow:0 0 0 3px rgba(var(--cim-orange-rgb),.10),0 7px 22px rgba(var(--cim-orange-rgb),.09);
}
html[data-cim-theme="dark"] .cim-ui-btn--ghost {
    color:var(--cim-color-heading)!important;
    background:transparent;
}
