.button {
    background-color: var(--brand-sky);
    padding: 15px;
    font-size: 12px;
    color: var(--primary-fg);
    margin: 0 5px;
    cursor: pointer;
}

.button:hover {
    background-color: var(--brand-sky-hover);
    color: var(--primary-fg);
}

.disabledbutton {
    background-color: var(--border-strong);
    padding: 15px;
    font-size: 12px;
    color: var(--fg-muted);
    margin: 0 5px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px 16px;
    border: 0;
    border-radius: 6px;
    font-size: 12px;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
}

.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--border-strong);
    border-radius: 8px;
    line-height: 1;
    font-size: 14px;
    color: var(--fg-muted);
    background: var(--bg-card);
    border-color: var(--border-strong);
    box-shadow: var(--shadow-sky-sm);
    transition: transform 0.15s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.btn-icon[hidden] {
    display: none !important;
}

.btn-icon:hover,
.btn-icon:visited:hover {
    color: var(--fg);
    background: var(--bg-secondary);
    border-color: var(--border-strong);
    transform: translateY(-1px);
    box-shadow: var(--shadow-sky-md);
}

.btn-icon:focus-visible {
    outline: 2px solid var(--focus-sky-color);
    outline-offset: 2px;
}

.btn-icon:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.1);
}

.btn-icon:disabled,
.btn-icon[aria-disabled="true"] {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
    pointer-events: none;
}

.btn-icon>svg {
    width: 16px;
    height: 16px;
    display: block;
}

.btn-icon-print,
.btn-icon-copy,
.btn-icon-export,
.btn-icon-password,
.btn-icon-login,
.btn-icon-save,
.btn-icon-send,
.btn-icon-close,
.btn-icon-clear {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 8px;
    color: var(--fg);
    background: var(--bg);
    box-shadow: none;
}

.btn-icon-print::before,
.btn-icon-copy::before,
.btn-icon-export::before,
.btn-icon-password::before,
.btn-icon-login::before,
.btn-icon-save::before,
.btn-icon-send::before,
.btn-icon-close::before,
.btn-icon-clear::before {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background: currentColor;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
}

.btn-icon-print::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M4 5V2.75h8V5'/><path d='M4.5 11.5H3.75A1.75 1.75 0 0 1 2 9.75v-2.5A1.75 1.75 0 0 1 3.75 5.5h8.5A1.75 1.75 0 0 1 14 7.25v2.5a1.75 1.75 0 0 1-1.75 1.75h-.75'/><path d='M4.5 9.5h7v3.75h-7z'/><path d='M11.25 7.75h.01'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M4 5V2.75h8V5'/><path d='M4.5 11.5H3.75A1.75 1.75 0 0 1 2 9.75v-2.5A1.75 1.75 0 0 1 3.75 5.5h8.5A1.75 1.75 0 0 1 14 7.25v2.5a1.75 1.75 0 0 1-1.75 1.75h-.75'/><path d='M4.5 9.5h7v3.75h-7z'/><path d='M11.25 7.75h.01'/></g></svg>");
}

.btn-icon-copy::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><rect x='5.25' y='4.75' width='7' height='8.25' rx='1.1'/><path d='M10.75 4.75V3.85A1.1 1.1 0 0 0 9.65 2.75H4.35a1.1 1.1 0 0 0-1.1 1.1v6.3a1.1 1.1 0 0 0 1.1 1.1h.9'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><rect x='5.25' y='4.75' width='7' height='8.25' rx='1.1'/><path d='M10.75 4.75V3.85A1.1 1.1 0 0 0 9.65 2.75H4.35a1.1 1.1 0 0 0-1.1 1.1v6.3a1.1 1.1 0 0 0 1.1 1.1h.9'/></g></svg>");
}

.btn-icon-export::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M9.5 2H13v3.5'/><path d='M8 8l5-5'/><path d='M7 3.5H4.25A1.75 1.75 0 0 0 2.5 5.25v6.5A1.75 1.75 0 0 0 4.25 13.5h6.5a1.75 1.75 0 0 0 1.75-1.75V9'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M9.5 2H13v3.5'/><path d='M8 8l5-5'/><path d='M7 3.5H4.25A1.75 1.75 0 0 0 2.5 5.25v6.5A1.75 1.75 0 0 0 4.25 13.5h6.5a1.75 1.75 0 0 0 1.75-1.75V9'/></g></svg>");
}

.btn-icon-password::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><circle cx='5' cy='8' r='2.25'/><path d='M7.25 8h6.25'/><path d='M10 8v2'/><path d='M12.25 8v1.5'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><circle cx='5' cy='8' r='2.25'/><path d='M7.25 8h6.25'/><path d='M10 8v2'/><path d='M12.25 8v1.5'/></g></svg>");
}

.btn-icon-login::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><path d='M7 2.75H3.85a1.1 1.1 0 0 0-1.1 1.1v8.3a1.1 1.1 0 0 0 1.1 1.1H7'/><path d='M8.25 5l3 3-3 3'/><path d='M5 8h6.25'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><path d='M7 2.75H3.85a1.1 1.1 0 0 0-1.1 1.1v8.3a1.1 1.1 0 0 0 1.1 1.1H7'/><path d='M8.25 5l3 3-3 3'/><path d='M5 8h6.25'/></g></svg>");
}

.btn-icon-save::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M3 2.5h8l2 2v9H3z'/><path d='M5 2.5h5v3H5z'/><path d='M5 10.25h6'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M3 2.5h8l2 2v9H3z'/><path d='M5 2.5h5v3H5z'/><path d='M5 10.25h6'/></g></svg>");
}

.btn-icon-close::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 4.5l7 7'/><path d='M11.5 4.5l-7 7'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4.5 4.5l7 7'/><path d='M11.5 4.5l-7 7'/></g></svg>");
}

.btn-icon-send::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M2 2.5l12 5.5-12 5.5V9l8-1-8-1z'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><path d='M2 2.5l12 5.5-12 5.5V9l8-1-8-1z'/></g></svg>");
}

.btn-action-send-wrapper {
    position: relative;
    display: inline-flex;
}

.btn-icon-clear::before {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><path d='M6.2 3.25h5.1l1.45 1.45-5.9 5.9H1.75V5.5z'/><path d='M9.05 6.05l2.9 2.9'/><path d='M2.8 12.75h10.45'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><path d='M6.2 3.25h5.1l1.45 1.45-5.9 5.9H1.75V5.5z'/><path d='M9.05 6.05l2.9 2.9'/><path d='M2.8 12.75h10.45'/></g></svg>");
}

.btn-icon-simulador,
.btn-icon-simulador {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 8px;
    color: var(--fg);
    background: var(--bg);
    box-shadow: none;
}

.btn-icon-simulador::before {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background: currentColor;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='2' width='10' height='12' rx='1.5'/><path d='M5.5 4.5h5'/><path d='M5.5 7h1.5'/><path d='M9 7h1.5'/><path d='M5.5 9h1.5'/><path d='M9 9h1.5'/><path d='M5.5 11h1.5'/><path d='M9 11h1.5'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='2' width='10' height='12' rx='1.5'/><path d='M5.5 4.5h5'/><path d='M5.5 7h1.5'/><path d='M9 7h1.5'/><path d='M5.5 9h1.5'/><path d='M9 9h1.5'/><path d='M5.5 11h1.5'/><path d='M9 11h1.5'/></g></svg>");
}

.btn-icon-columns,
.btn-icon-columns {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 8px;
    color: var(--fg);
    background: var(--bg);
    box-shadow: none;
}

.btn-icon-columns::before {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background: currentColor;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='2.5' width='12' height='11' rx='1.5'/><path d='M2 5.5h12'/><path d='M6 5.5v8'/><path d='M10 5.5v8'/></g></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><g fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='2.5' width='12' height='11' rx='1.5'/><path d='M2 5.5h12'/><path d='M6 5.5v8'/><path d='M10 5.5v8'/></g></svg>");
}

/* Column picker popover */
.column-picker-popover {
    position: fixed;
    z-index: 25;
    width: min(280px, calc(100vw - 32px));
    max-height: min(360px, calc(100vh - 120px));
    overflow: auto;
    padding: 10px;
    border: 1px solid var(--border-strong);
    border-radius: 12px;
    background: var(--bg);
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.14);
}

.column-picker-popover[hidden] {
    display: none !important;
}

.column-picker-popover h4 {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--fg-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.column-picker-options {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.column-picker-option {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 24px;
    color: var(--fg);
    font-size: 13px;
    cursor: pointer;
    user-select: none;
}

.column-picker-option input[type="checkbox"] {
    flex-shrink: 0;
}

.btn-icon-chat,
.chat-window-toggle.btn-icon-chat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    min-width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 999px;
    border: 1px solid var(--brand-sky) !important;
    background: var(--brand-sky) !important;
    background-color: var(--brand-sky) !important;
    color: var(--primary-fg) !important;
    box-shadow: 0 8px 18px rgba(24, 108, 223, 0.2);
    transition: transform 0.15s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.btn-icon-chat::before,
.chat-window-toggle.btn-icon-chat::before {
    content: "";
    display: block;
    width: 15px;
    height: 15px;
    background: currentColor;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 3c5.5 0 10 3.58 10 8s-4.5 8-10 8c-1.24 0-2.43-.18-3.53-.5C5.55 21 2 21 2 21c2.33-2.33 2.7-3.9 2.75-4.5C3.05 15.07 2 13.13 2 11c0-4.42 4.5-8 10-8'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 3c5.5 0 10 3.58 10 8s-4.5 8-10 8c-1.24 0-2.43-.18-3.53-.5C5.55 21 2 21 2 21c2.33-2.33 2.7-3.9 2.75-4.5C3.05 15.07 2 13.13 2 11c0-4.42 4.5-8 10-8'/></svg>");
}

.btn-icon-chat > svg,
.chat-window-toggle.btn-icon-chat > svg {
    display: none !important;
}

.btn-icon-chat:hover,
.chat-window-toggle.btn-icon-chat:hover {
    background: var(--brand-sky-hover) !important;
    background-color: var(--brand-sky-hover) !important;
    border-color: var(--brand-sky-hover) !important;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(24, 108, 223, 0.28);
}

.btn-icon-chat:focus-visible,
.chat-window-toggle.btn-icon-chat:focus-visible {
    outline: 2px solid var(--focus-sky-color);
    outline-offset: 2px;
}

.btn-icon-chat:active,
.chat-window-toggle.btn-icon-chat:active {
    transform: translateY(0);
    box-shadow: 0 4px 10px rgba(24, 108, 223, 0.2);
}

.btn-icon-print:hover,
.btn-icon-print:visited:hover,
.btn-icon-copy:hover,
.btn-icon-copy:visited:hover,
.btn-icon-export:hover,
.btn-icon-export:visited:hover,
.btn-icon-password:hover,
.btn-icon-password:visited:hover,
.btn-icon-login:hover,
.btn-icon-login:visited:hover,
.btn-icon-save:hover,
.btn-icon-save:visited:hover,
.btn-icon-close:hover,
.btn-icon-close:visited:hover,
.btn-icon-clear:hover,
.btn-icon-clear:visited:hover {
    box-shadow: none;
}

[data-theme="dark"] .btn-icon-print,
[data-theme="dark"] .btn-icon-copy,
[data-theme="dark"] .btn-icon-export,
[data-theme="dark"] .btn-icon-password,
[data-theme="dark"] .btn-icon-login,
[data-theme="dark"] .btn-icon-save,
[data-theme="dark"] .btn-icon-close,
[data-theme="dark"] .btn-icon-clear {
    box-shadow: none;
}

.btn-primary {
    background-color: var(--brand-sky);
    color: var(--primary-fg);
}

.btn-primary:hover,
.btn-primary:visited:hover {
    background-color: var(--brand-sky-hover);
    color: var(--primary-fg);
}

.btn-secondary {
    height: 34px;
    padding: 0 14px;
    border-radius: 8px;
    border: 1px solid var(--border-strong);
    background: var(--bg-card);
    color: var(--fg);
    font-weight: 500;
    letter-spacing: 0.01em;
    box-shadow: var(--shadow-sky-sm);
    transition: transform 0.15s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.btn-secondary:visited {
    color: var(--fg);
}

.btn-secondary:hover,
.btn-secondary:visited:hover {
    color: var(--fg);
    background: var(--bg-secondary);
    border-color: var(--border-strong);
    transform: translateY(-1px);
    box-shadow: var(--shadow-sky-md);
}

.btn-secondary:focus-visible {
    outline: 2px solid var(--focus-sky-color);
    outline-offset: 2px;
}

.btn-secondary:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.1);
}

.btn-menu-line {
    min-height: 32px;
    height: auto;
    padding: 0 2px 4px;
    border: 0;
    border-bottom: 1px solid var(--border-strong);
    border-radius: 0;
    background: transparent;
    color: var(--fg-muted);
    font-weight: 600;
    box-shadow: none;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.btn-menu-line:visited {
    color: var(--fg-muted);
}

.btn-menu-line:hover,
.btn-menu-line:visited:hover {
    background: transparent;
    border-color: var(--brand-sky);
    color: var(--fg);
    transform: none;
    box-shadow: none;
}

.btn-menu-line:focus-visible {
    outline: 2px solid var(--focus-sky-color);
    outline-offset: 2px;
}

.btn-menu-line:active {
    transform: none;
    box-shadow: none;
}

.btn-tag {
    height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--border-strong);
    background: transparent;
    color: var(--fg-muted);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
    box-shadow: none;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.btn-tag:visited {
    color: var(--fg-muted);
}

.btn-tag:hover,
.btn-tag:visited:hover {
    background: transparent;
    color: var(--fg);
    border-color: var(--border-strong);
    box-shadow: none;
    transform: none;
}

.btn-tag:focus-visible {
    outline: 2px solid var(--focus-sky-color);
    outline-offset: 2px;
}

.btn-tag:active {
    transform: none;
    box-shadow: none;
}

.btn-tag-info {
    background: var(--bg-secondary);
    border-color: var(--fg);
    color: var(--fg);
}

.btn-tag-info:visited {
    color: var(--fg);
}

.btn-tag-info:hover,
.btn-tag-info:visited:hover {
    background: var(--border-soft);
    border-color: var(--fg);
    color: var(--fg);
}

.btn-cta {
    height: 34px;
    padding: 0 14px;
    border: 1px solid transparent;
    border-radius: 8px;
    border-color: transparent;
    background: linear-gradient(135deg, var(--brand-sky) 0%, var(--brand-sky-hover) 100%);
    color: var(--primary-fg);
    font-weight: 500;
    letter-spacing: 0.01em;
    box-shadow: 0 4px 14px rgba(24, 108, 223, 0.24);
    transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.btn-cta:visited {
    color: var(--primary-fg);
}

.btn-cta:hover,
.btn-cta:visited:hover {
    color: var(--primary-fg);
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(24, 108, 223, 0.3);
    filter: brightness(1.02);
}

.btn-cta:focus-visible {
    outline: 2px solid rgba(24, 108, 223, 0.35);
    outline-offset: 2px;
}

.btn-cta:active {
    transform: translateY(0);
    box-shadow: 0 3px 10px rgba(24, 108, 223, 0.25);
}

[data-theme="dark"] .btn-cta {
    background: linear-gradient(135deg, var(--brand-sky) 0%, var(--brand-sky-hover) 100%);
    border-color: var(--brand-sky-bright);
    box-shadow: 0 8px 20px rgba(30, 64, 175, 0.45);
}

[data-theme="dark"] .btn-cta:hover,
[data-theme="dark"] .btn-cta:visited:hover {
    box-shadow: 0 10px 24px rgba(30, 64, 175, 0.55);
}

[data-theme="dark"] .btn-cta:focus-visible {
    outline-color: rgba(96, 165, 250, 0.55);
}

[data-theme="dark"] .btn-secondary {
    background: var(--bg-card);
    border-color: var(--border-strong);
    color: var(--fg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.32);
}

[data-theme="dark"] .btn-secondary:visited {
    color: var(--fg);
}

[data-theme="dark"] .btn-secondary:hover,
[data-theme="dark"] .btn-secondary:visited:hover {
    background: var(--bg-elevated);
    border-color: var(--border-strong);
    color: var(--primary-fg);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .btn-secondary:focus-visible {
    outline-color: rgba(148, 197, 255, 0.45);
}

[data-theme="dark"] .btn-menu-line {
    border-bottom-color: var(--border-strong);
    color: var(--fg-muted);
}

[data-theme="dark"] .btn-menu-line:visited {
    color: var(--fg-muted);
}

[data-theme="dark"] .btn-menu-line:hover,
[data-theme="dark"] .btn-menu-line:visited:hover {
    border-bottom-color: var(--brand-sky-bright);
    color: var(--fg);
    background: transparent;
}

[data-theme="dark"] .btn-menu-line:focus-visible {
    outline-color: rgba(148, 197, 255, 0.45);
}

[data-theme="dark"] .btn-tag {
    background: transparent;
    border-color: var(--border-strong);
    color: var(--fg-muted);
}

[data-theme="dark"] .btn-tag:visited {
    color: var(--fg-muted);
}

[data-theme="dark"] .btn-tag:hover,
[data-theme="dark"] .btn-tag:visited:hover {
    background: transparent;
    border-color: var(--fg-subtle);
    color: var(--fg);
}

[data-theme="dark"] .btn-tag:focus-visible {
    outline-color: rgba(148, 197, 255, 0.45);
}

[data-theme="dark"] .btn-tag-info {
    background: var(--bg-secondary);
    border-color: var(--fg);
    color: var(--fg);
}

[data-theme="dark"] .btn-tag-info:visited {
    color: var(--fg);
}

[data-theme="dark"] .btn-tag-info:hover,
[data-theme="dark"] .btn-tag-info:visited:hover {
    background: var(--border-soft);
    border-color: var(--fg);
    color: var(--fg);
}

[data-theme="dark"] .btn-icon {
    background: var(--bg-card);
    border-color: var(--border-strong);
    color: var(--fg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.32);
}

[data-theme="dark"] .btn-icon:hover,
[data-theme="dark"] .btn-icon:visited:hover {
    background: var(--bg-elevated);
    border-color: var(--border-strong);
    color: var(--primary-fg);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .btn-icon:focus-visible {
    outline-color: rgba(148, 197, 255, 0.45);
}
