@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
    /* Brand Colors */
    --color-primary: #e67a2e;
    --color-primary-light: #f0944d;
    --color-primary-dark: #c9631f;
    --color-primary-glow: rgba(230, 122, 46, 0.4);

    /* Brand Opacity Variants */
    --color-primary-subtle: rgba(230, 122, 46, 0.08);
    --color-primary-muted: rgba(230, 122, 46, 0.12);
    --color-primary-soft: rgba(230, 122, 46, 0.15);
    --color-primary-medium: rgba(230, 122, 46, 0.2);
    --color-primary-strong: rgba(230, 122, 46, 0.3);

    /* Dark Theme */
    --color-bg-dark: #0d0f14;
    --color-bg-dark-secondary: #141821;
    --color-bg-dark-tertiary: #1a1f2e;

    /* Glass Effects */
    --glass-bg: rgba(255, 255, 255, 0.05);
    --glass-bg-light: rgba(255, 255, 255, 0.08);
    --glass-border: rgba(255, 255, 255, 0.1);
    --glass-border-light: rgba(255, 255, 255, 0.15);
    --glass-shadow: rgba(0, 0, 0, 0.25);
    --glass-blur: 24px;
    --glass-blur-medium: 20px;
    --glass-blur-subtle: 16px;

    /* Text Colors */
    --text-primary: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.7);
    --text-muted: rgba(255, 255, 255, 0.45);

    /* Status Colors */
    --color-success: #52c41a;
    --color-warning: #faad14;
    --color-error: #ff4d4f;
    --color-info: #1890ff;

    /* Tool Accent Colors (brand-derived) */
    --accent-file: #6ba3e8;
    --accent-edit: #6ec86e;
    --accent-bash: #b088d4;
    --accent-browser: #d4b36a;
    --accent-database: #6ab8b0;
    --accent-code: #6ba3e8;
    --accent-metrics: #d47a8a;
    --accent-destructive: #d47a8a;

    /* Gradients */
    --gradient-primary: linear-gradient(135deg, #e67a2e 0%, #f0944d 100%);
    --gradient-bg: radial-gradient(ellipse at 20% 0%, rgba(230, 122, 46, 0.15) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 100%, rgba(230, 122, 46, 0.1) 0%, transparent 50%),
    linear-gradient(180deg, #0d0f14 0%, #141821 100%);

    /* Typography */
    --font-display: 'Space Grotesk', sans-serif;
    --font-body: 'Plus Jakarta Sans', sans-serif;
    --font-mono: 'JetBrains Mono', 'Cascadia Code', 'Fira Code', monospace;

    /* Font Sizes */
    --font-size-xs: 11px;
    --font-size-sm: 12px;
    --font-size-base: 13px;
    --font-size-md: 14px;
    --font-size-lg: 16px;
    --font-size-xl: 18px;
    --font-size-2xl: 20px;

    /* Spacing */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;

    /* Borders */
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 24px;

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 400ms ease;
}

html {
    height: 100%;
    background: var(--color-bg-dark);
}

body {
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background: var(--gradient-bg);
    background-attachment: fixed;
    color: var(--text-primary);
    height: 100%;
    margin: 0;
}

/* ========================================
   Global Dark Theme — Force light text on AntDesign components
   AntDesign assumes a light theme, so its components default to black text.
   This catch-all ensures new elements don't need individual overrides.
   ======================================== */

[class^="ant-"],
[class*=" ant-"] {
    color: inherit;
}

button, label, span, a {
    color: inherit;
}

/* ========================================
   Scrollbar Styling
   ======================================== */

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.15);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.25);
}

/* ========================================
   Glass Card
   ======================================== */

.glass-card {
    background: var(--glass-bg);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    box-shadow: 0 4px 24px var(--glass-shadow);
}

.glass-surface {
    background: var(--glass-bg);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid var(--glass-border);
}

/* ========================================
   AntDesign Dark Theme Overrides
   ======================================== */

/* ---- Sidebar Navigation ---- */

/* Menu selected state - force orange instead of blue */
.ant-menu-dark .ant-menu-item-selected,
.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected,
.ant-menu.ant-menu-dark .ant-menu-item-selected {
    background-color: var(--color-primary-soft) !important;
    color: var(--color-primary) !important;
}

/* Selected item - text and links */
.ant-menu-dark .ant-menu-item-selected .ant-menu-title-content,
.ant-menu-dark .ant-menu-item-selected .ant-menu-title-content a,
.ant-menu-dark .ant-menu-item-selected a,
.ant-menu.ant-menu-dark .ant-menu-item-selected .ant-menu-title-content,
.ant-menu.ant-menu-dark .ant-menu-item-selected .ant-menu-title-content a,
.ant-menu.ant-menu-dark .ant-menu-item-selected a {
    color: var(--color-primary) !important;
}

/* Selected icon color */
.ant-menu-dark .ant-menu-item-selected .anticon,
.ant-menu.ant-menu-dark .ant-menu-item-selected .anticon,
.ant-menu-dark .ant-menu-item-selected .anticon svg,
.ant-menu.ant-menu-dark .ant-menu-item-selected .anticon svg {
    color: var(--color-primary) !important;
    fill: var(--color-primary) !important;
}

/* Remove the default blue right border */
.ant-menu-dark .ant-menu-item-selected::after {
    border-right-color: transparent !important;
    display: none !important;
}

/* Menu items - rounded corners */
.ant-menu-dark .ant-menu-item {
    border-radius: 8px !important;
    margin: 4px 8px !important;
    transition: all var(--transition-fast) !important;
}

/* Hover state */
.ant-menu-dark .ant-menu-item:hover:not(.ant-menu-item-selected) {
    color: var(--text-primary) !important;
}

.ant-menu-dark .ant-menu-item:hover {
    background-color: rgba(255, 255, 255, 0.06) !important;
}

.ant-menu-dark .ant-menu-item:hover .anticon {
    color: var(--text-primary) !important;
}

/* Non-selected items - default styling */
.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected) .ant-menu-title-content,
.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected) .ant-menu-title-content a,
.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected) a {
    color: var(--text-secondary) !important;
}

.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected) .anticon {
    color: var(--text-secondary) !important;
}

/* Sidebar collapsed state */
.ant-menu-inline-collapsed .ant-menu-item {
    padding: 0 !important;
    text-align: center !important;
}

.ant-menu-inline-collapsed .ant-menu-item .ant-menu-title-content {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    height: 100% !important;
}

.ant-menu-inline-collapsed .ant-menu-item .ant-menu-title-content a {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.ant-menu-inline-collapsed .ant-menu-item .ant-menu-title-content a span:not(.anticon) {
    display: none !important;
}

/* ---- Global Button Styles ---- */

/* Base button - rounded corners for all buttons */
.ant-btn {
    border-radius: var(--radius-sm) !important;
    font-weight: 500;
    transition: all var(--transition-fast) !important;
}

/* Primary button - orange gradient with glow */
.ant-btn-primary {
    background: var(--gradient-primary) !important;
    border: none !important;
    box-shadow: 0 4px 14px var(--color-primary-strong) !important;
    color: white !important;
}

.ant-btn-primary:hover:not(:disabled),
.ant-btn-primary:focus:not(:disabled) {
    background: var(--gradient-primary) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 20px var(--color-primary-glow) !important;
}

.ant-btn-primary:active:not(:disabled) {
    transform: translateY(0);
    box-shadow: 0 2px 8px var(--color-primary-strong) !important;
}

.ant-btn-primary[disabled],
.ant-btn-primary.ant-btn-disabled {
    background: var(--color-primary-glow) !important;
    box-shadow: none !important;
    color: rgba(255, 255, 255, 0.6) !important;
    cursor: not-allowed;
}

/* Default button - glass morphism style */
.ant-btn-default {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border-light) !important;
    color: var(--text-secondary) !important;
}

.ant-btn-default:hover:not(:disabled),
.ant-btn-default:focus:not(:disabled) {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
}

.ant-btn-default[disabled],
.ant-btn-default.ant-btn-disabled {
    background: rgba(255, 255, 255, 0.03) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    color: var(--text-muted) !important;
    cursor: not-allowed;
}

/* Danger button - red styling */
.ant-btn-dangerous:not(.ant-btn-primary) {
    background: rgba(255, 77, 79, 0.15) !important;
    border: 1px solid rgba(255, 77, 79, 0.3) !important;
    color: #ff7875 !important;
}

.ant-btn-dangerous:not(.ant-btn-primary):hover:not(:disabled),
.ant-btn-dangerous:not(.ant-btn-primary):focus:not(:disabled) {
    background: rgba(255, 77, 79, 0.25) !important;
    border-color: rgba(255, 77, 79, 0.5) !important;
    color: #ff7875 !important;
}

/* Primary danger button */
.ant-btn-primary.ant-btn-dangerous {
    background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%) !important;
    border: none !important;
    box-shadow: 0 4px 14px rgba(255, 77, 79, 0.35) !important;
    color: white !important;
}

.ant-btn-primary.ant-btn-dangerous:hover:not(:disabled) {
    box-shadow: 0 6px 20px rgba(255, 77, 79, 0.45) !important;
    transform: translateY(-1px);
}

/* Text button */
.ant-btn-text {
    background: transparent !important;
    border: none !important;
    color: var(--text-secondary) !important;
}

.ant-btn-text:hover:not(:disabled),
.ant-btn-text:focus:not(:disabled) {
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--text-primary) !important;
}

/* Link button */
.ant-btn-link {
    background: transparent !important;
    border: none !important;
    color: var(--color-primary) !important;
    box-shadow: none !important;
}

.ant-btn-link:hover:not(:disabled),
.ant-btn-link:focus:not(:disabled) {
    color: var(--color-primary-light) !important;
}

.ant-btn-link.ant-btn-dangerous {
    color: #ff7875 !important;
}

.ant-btn-link.ant-btn-dangerous:hover:not(:disabled) {
    color: #ff4d4f !important;
}

/* Loading state */
.ant-btn-loading {
    opacity: 0.85;
}

/* Small button size */
.ant-btn-sm {
    border-radius: 6px !important;
}

/* Large button size */
.ant-btn-lg {
    border-radius: var(--radius-md) !important;
}

/* Block button */
.ant-btn-block {
    border-radius: var(--radius-sm) !important;
}

/* Button with icon spacing */
.ant-btn > .anticon + span,
.ant-btn > span + .anticon {
    margin-left: 6px;
}

/* Icon-only button */
.ant-btn-icon-only {
    border-radius: var(--radius-sm) !important;
}

/* Button group */
.ant-btn-group .ant-btn:first-child:not(:last-child) {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.ant-btn-group .ant-btn:last-child:not(:first-child) {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

.ant-btn-group .ant-btn:not(:first-child):not(:last-child) {
    border-radius: 0 !important;
}

/* ---- Drawer Overrides ---- */

.ant-drawer-content {
    background: #1a1a2e !important;
}

.ant-drawer-header {
    background: #151525 !important;
    border-bottom: 1px solid var(--glass-border) !important;
}

.ant-drawer-title {
    color: var(--text-primary) !important;
}

.ant-drawer-close {
    color: var(--text-muted) !important;
}

.ant-drawer-close:hover {
    color: var(--text-primary) !important;
}

.ant-drawer-body {
    color: var(--text-secondary) !important;
}

.ant-drawer-mask {
    background: rgba(0, 0, 0, 0.5) !important;
}

/* ---- Modal Overrides ---- */

.ant-modal-mask {
    background: rgba(0, 0, 0, 0.7) !important;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.ant-modal-content {
    background: rgba(30, 32, 38, 0.95) !important;
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
    padding: 0 !important;
    overflow: visible;
}

.ant-modal-header {
    background: transparent !important;
    border-bottom: 1px solid var(--glass-border) !important;
    padding: 20px 24px !important;
}

.ant-modal-title {
    color: var(--text-primary) !important;
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 600;
    font-size: 1.125rem;
}

.ant-modal-close {
    color: var(--text-muted) !important;
    top: 16px !important;
    right: 16px !important;
}

.ant-modal-close:hover {
    color: var(--text-primary) !important;
    background: var(--glass-bg-light) !important;
    border-radius: var(--radius-sm);
}

.ant-modal-body {
    padding: 24px !important;
    color: var(--text-secondary) !important;
}

.ant-modal-footer {
    background: transparent !important;
    border-top: 1px solid var(--glass-border) !important;
    padding: 16px 24px !important;
}

.ant-modal-footer .ant-btn {
    border-radius: var(--radius-sm) !important;
}

.ant-modal-footer .ant-btn-default {
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border-light) !important;
    color: var(--text-secondary) !important;
}

.ant-modal-footer .ant-btn-default:hover {
    color: var(--text-primary) !important;
    border-color: var(--color-primary) !important;
}

.ant-modal-footer .ant-btn-primary {
    background: var(--gradient-primary) !important;
    border: none !important;
    box-shadow: 0 4px 14px var(--color-primary-strong) !important;
}

.ant-modal-footer .ant-btn-dangerous {
    background: rgba(255, 77, 79, 0.15) !important;
    border: 1px solid rgba(255, 77, 79, 0.25) !important;
    color: #ff7875 !important;
}

.ant-modal-confirm-btns .ant-btn {
    border-radius: var(--radius-sm) !important;
}

/* Confirm modal body text */
.ant-modal-confirm-body .ant-modal-confirm-title {
    color: var(--text-primary) !important;
}

.ant-modal-confirm-body .ant-modal-confirm-content {
    color: var(--text-secondary) !important;
}

/* Input inside modals */
.ant-modal-body .ant-input {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    color: var(--text-primary) !important;
}

.ant-modal-body .ant-input:focus,
.ant-modal-body .ant-input:hover {
    border-color: var(--color-primary) !important;
}

.ant-modal-body .ant-input::placeholder {
    color: var(--text-muted) !important;
}

/* ---- Popconfirm Overrides ---- */

.ant-popover-inner {
    background: rgba(30, 30, 30, 0.95) !important;
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid var(--glass-border-light) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4) !important;
}

.ant-popover-message-title {
    color: var(--text-primary) !important;
}

.ant-popover-arrow-content,
.ant-popover-arrow::before {
    background: rgba(30, 30, 30, 0.95) !important;
}

.ant-popconfirm .ant-btn-default {
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border-light) !important;
    color: var(--text-secondary) !important;
}

.ant-popconfirm .ant-btn-default:hover {
    color: var(--text-primary) !important;
    border-color: var(--color-primary) !important;
}

.ant-popconfirm .ant-btn-primary {
    background: var(--gradient-primary) !important;
    border: none !important;
}

/* ---- Card Overrides ---- */

.ant-card {
    background: var(--glass-bg) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--text-primary) !important;
}

.ant-card-head {
    color: var(--text-primary) !important;
    border-bottom-color: var(--glass-border) !important;
}

.ant-card-body {
    color: var(--text-primary) !important;
}

/* ---- Table Overrides ---- */

.ant-table {
    background: transparent !important;
    color: var(--text-primary) !important;
}

.ant-table-thead > tr > th {
    background: var(--color-bg-dark-tertiary) !important;
    color: var(--text-secondary) !important;
    border-bottom-color: var(--glass-border) !important;
}

.ant-table-tbody > tr > td {
    border-bottom-color: var(--glass-border) !important;
    color: var(--text-primary) !important;
}

.ant-table-tbody > tr:hover > td {
    background: rgba(255, 255, 255, 0.03) !important;
}

/* ---- Statistic Overrides ---- */

.ant-statistic-title {
    color: var(--text-secondary) !important;
}

/* ---- Tag Overrides ---- */

.ant-tag {
    border-radius: var(--radius-sm) !important;
}

.ant-tag-default {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: var(--glass-border) !important;
    color: var(--text-secondary) !important;
}

.ant-tag-processing {
    background: rgba(24, 144, 255, 0.15) !important;
    border-color: rgba(24, 144, 255, 0.3) !important;
    color: #69c0ff !important;
}

.ant-tag-blue {
    background: rgba(24, 144, 255, 0.15) !important;
    border-color: rgba(24, 144, 255, 0.3) !important;
    color: #69c0ff !important;
}

.ant-tag-warning {
    background: rgba(250, 173, 20, 0.15) !important;
    border-color: rgba(250, 173, 20, 0.3) !important;
    color: #ffc53d !important;
}

.ant-tag-success,
.ant-tag-green {
    background: rgba(82, 196, 26, 0.15) !important;
    border-color: rgba(82, 196, 26, 0.3) !important;
    color: #95de64 !important;
}

.ant-tag-error,
.ant-tag-red {
    background: rgba(255, 77, 79, 0.15) !important;
    border-color: rgba(255, 77, 79, 0.3) !important;
    color: #ff7875 !important;
}

.ant-tag-cyan {
    background: rgba(19, 194, 194, 0.15) !important;
    border-color: rgba(19, 194, 194, 0.3) !important;
    color: #5cdbd3 !important;
}

.ant-tag-purple {
    background: rgba(114, 46, 209, 0.15) !important;
    border-color: rgba(114, 46, 209, 0.3) !important;
    color: #b37feb !important;
}

.ant-tag-orange {
    background: var(--color-primary-soft) !important;
    border-color: var(--color-primary-strong) !important;
    color: var(--color-primary) !important;
}

/* ---- Input Overrides ---- */

.ant-input {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--text-primary) !important;
    transition: all var(--transition-base) !important;
}

.ant-input::placeholder {
    color: var(--text-muted) !important;
}

.ant-input:hover {
    border-color: var(--glass-border-light) !important;
}

.ant-input:focus,
.ant-input-focused {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px var(--color-primary-glow) !important;
}

.ant-input-lg {
    height: 48px !important;
    font-size: 0.9375rem !important;
}

/* Input number */
.ant-input-number-lg {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--text-primary) !important;
}

.ant-input-number-lg:hover {
    border-color: var(--glass-border-light) !important;
}

.ant-input-number-lg:focus,
.ant-input-number-lg-focused {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px var(--color-primary-glow) !important;
}

/* Input affix wrapper (search, password, etc.) */
.ant-input-affix-wrapper {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
}

.ant-input-affix-wrapper:hover {
    border-color: var(--glass-border-light) !important;
}

.ant-input-affix-wrapper:focus-within,
.ant-input-affix-wrapper-focused {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px var(--color-primary-glow) !important;
}

.ant-input-affix-wrapper .ant-input {
    background: transparent !important;
    border: none !important;
}

.ant-input-affix-wrapper .ant-input-suffix .anticon,
.ant-input-affix-wrapper .ant-input-prefix .anticon {
    color: var(--text-muted) !important;
}

/* Password input wrapper */
.ant-input-affix-wrapper.ant-input-password {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
}

.ant-input-affix-wrapper.ant-input-password:hover,
.ant-input-affix-wrapper.ant-input-password:focus-within {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px var(--color-primary-glow) !important;
}

.ant-input-affix-wrapper.ant-input-password .ant-input {
    background: transparent !important;
    border: none !important;
    color: var(--text-primary) !important;
}

.ant-input-affix-wrapper.ant-input-password .ant-input::placeholder {
    color: var(--text-muted) !important;
}

.ant-input-affix-wrapper.ant-input-password .ant-input-suffix .anticon {
    color: var(--text-muted) !important;
}

.ant-input-affix-wrapper-lg.ant-input-password {
    height: 48px !important;
    font-size: 0.9375rem !important;
}

/* ---- TextArea Overrides ---- */

.ant-input-textarea textarea,
textarea.ant-input {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--text-primary) !important;
    color-scheme: dark !important;
}

.ant-input-textarea textarea:focus,
.ant-input-textarea textarea:hover,
textarea.ant-input:focus,
textarea.ant-input:hover {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px var(--color-primary-glow) !important;
}

.ant-input-textarea textarea::placeholder,
textarea.ant-input::placeholder {
    color: var(--text-muted) !important;
}

.ant-input-textarea-show-count {
    background: transparent !important;
}

.ant-input-data-count {
    color: var(--text-muted) !important;
}

.ant-input-textarea .ant-input-affix-wrapper,
.ant-input-textarea-show-count .ant-input-affix-wrapper {
    background: transparent !important;
    border: none !important;
}

.ant-input-textarea.ant-input-textarea-show-count,
.ant-input-textarea.ant-input-textarea-in-form-item {
    border: none !important;
}

/* ---- Tabs Overrides ---- */

.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
    color: var(--color-primary) !important;
}

.ant-tabs-tab:hover .ant-tabs-tab-btn {
    color: var(--color-primary-light) !important;
}

.ant-tabs-ink-bar {
    background: var(--color-primary) !important;
}

.ant-tabs-tab .ant-tabs-tab-btn {
    color: var(--text-muted) !important;
}

/* ---- Select Overrides ---- */

.ant-select-selector {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--text-primary) !important;
}

.ant-select-arrow {
    color: var(--text-muted) !important;
}

.ant-select:hover .ant-select-selector {
    border-color: var(--glass-border-light) !important;
}

.ant-select-focused .ant-select-selector {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px var(--color-primary-glow) !important;
}

.ant-select-selection-item {
    color: var(--text-primary) !important;
}

.ant-select-selection-placeholder {
    color: var(--text-muted) !important;
}

.ant-select-selection-search-input {
    color: var(--text-primary) !important;
}

.ant-select-lg .ant-select-selector {
    height: 48px !important;
}

/* Select clear button */
.ant-select-clear {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--text-muted) !important;
}

.ant-select-clear:hover {
    color: var(--text-secondary) !important;
}

/* Select dropdown popup */
.ant-select-dropdown {
    background: var(--color-bg-dark-secondary) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    padding: 0.25rem !important;
}

.ant-select-item {
    color: var(--text-secondary) !important;
    border-radius: var(--radius-sm) !important;
    transition: all var(--transition-fast) !important;
}

.ant-select-item-option-active:not(.ant-select-item-option-disabled) {
    background: var(--glass-bg-light) !important;
}

.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
    background: var(--color-primary-soft) !important;
    color: var(--color-primary) !important;
    font-weight: 500;
}

.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state {
    color: var(--color-primary) !important;
}

/* ---- Search Input Group ---- */

.ant-input-search .ant-input-group-addon .ant-btn,
.ant-input-search .ant-input-search-button,
.ant-input-search .ant-btn-primary.ant-input-search-button,
.ant-input-group-addon .ant-btn.ant-input-search-button {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    box-shadow: none !important;
    color: var(--text-secondary) !important;
    border-radius: var(--radius-sm) !important;
    margin-left: 8px !important;
}

.ant-input-search .ant-input-group-addon .ant-btn:hover,
.ant-input-search .ant-input-search-button:hover,
.ant-input-search .ant-btn-primary.ant-input-search-button:hover,
.ant-input-group-addon .ant-btn.ant-input-search-button:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
    transform: none !important;
}

.ant-input-search .ant-input-group-addon {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

.ant-input-search .ant-input {
    border-radius: var(--radius-sm) !important;
}

/* ---- Date Picker ---- */

.ant-picker {
    background: var(--glass-bg-light) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    color: var(--text-primary) !important;
    transition: all var(--transition-base) !important;
}

.ant-picker:hover {
    border-color: var(--glass-border-light) !important;
}

.ant-picker-focused {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px var(--color-primary-glow) !important;
}

.ant-picker-input > input {
    color: var(--text-primary) !important;
}

.ant-picker-input > input::placeholder {
    color: var(--text-muted) !important;
}

.ant-picker-suffix {
    color: var(--text-muted) !important;
}

/* ---- Tooltip ---- */

.ant-tooltip-inner {
    background: var(--color-bg-dark-tertiary) !important;
    border: 1px solid var(--glass-border) !important;
}

/* ---- Layout ---- */

.ant-layout-sider {
    background: var(--color-bg-dark-secondary) !important;
}

.ant-layout {
    background: transparent !important;
}

/* ---- Spin / Loading ---- */

.ant-spin-dot-item {
    background-color: var(--color-primary) !important;
}

.ant-spin-text {
    color: var(--text-secondary) !important;
}

/* ---- Message / Notification ---- */

.ant-message-notice-content {
    background: var(--color-bg-dark-secondary) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}

.ant-message-success .anticon {
    color: #52c41a !important;
}

.ant-message-error .anticon {
    color: #ff4d4f !important;
}

.ant-message-info .anticon {
    color: var(--color-primary) !important;
}

.ant-message-notice-content .ant-message-custom-content span:last-child {
    color: var(--text-primary) !important;
}

/* ---- Empty State ---- */

.ant-empty {
    padding: var(--space-2xl);
}

.ant-empty-description {
    color: var(--text-muted) !important;
}

/* ---- Alert Overrides ---- */

.ant-alert-error {
    background: rgba(255, 77, 79, 0.1) !important;
    border: 1px solid rgba(255, 77, 79, 0.2) !important;
    border-radius: var(--radius-md);
}

.ant-alert-error .ant-alert-message {
    color: #ff7875 !important;
}

.ant-alert-error .ant-alert-description {
    color: rgba(255, 120, 117, 0.8) !important;
}

.ant-alert-warning {
    background: rgba(250, 173, 20, 0.1) !important;
    border: 1px solid rgba(250, 173, 20, 0.2) !important;
    border-radius: var(--radius-md);
}

.ant-alert-warning .ant-alert-message {
    color: #ffc53d !important;
}

.ant-alert-warning .ant-alert-description {
    color: rgba(255, 197, 61, 0.8) !important;
}

.ant-alert-info {
    background: rgba(24, 144, 255, 0.1) !important;
    border: 1px solid rgba(24, 144, 255, 0.2) !important;
    border-radius: var(--radius-md);
}

.ant-alert-info .ant-alert-message {
    color: #69c0ff !important;
}

.ant-alert-success {
    background: rgba(82, 196, 26, 0.1) !important;
    border: 1px solid rgba(82, 196, 26, 0.2) !important;
    border-radius: var(--radius-md);
}

.ant-alert-success .ant-alert-message {
    color: #95de64 !important;
}

/* ---- Result Overrides ---- */

.ant-result-title {
    color: var(--text-primary) !important;
}

.ant-result-subtitle {
    color: var(--text-secondary) !important;
}

/* ---- Collapse Overrides ---- */

.ant-collapse {
    background: var(--glass-bg) !important;
    border-color: var(--glass-border) !important;
}

.ant-collapse-item {
    border-color: var(--glass-border) !important;
}

.ant-collapse-header {
    color: var(--text-primary) !important;
}

.ant-collapse-content {
    background: transparent !important;
    border-top-color: var(--glass-border) !important;
    color: var(--text-primary) !important;
}

.ant-collapse-arrow {
    color: var(--text-secondary) !important;
}

/* ---- Form Label Overrides ---- */

.ant-form-item-label > label,
label.ant-form-item-label,
.ant-form-item-label span,
.ant-form .ant-form-item-label {
    color: var(--text-secondary) !important;
}

.ant-form-item-label > label.ant-form-item-required::before {
    color: var(--color-error) !important;
}

.ant-form button {
    color: var(--text-secondary);
}

/* ---- Radio Overrides ---- */

.ant-radio-wrapper {
    color: var(--text-secondary) !important;
}

.ant-radio-wrapper:hover .ant-radio-inner {
    border-color: var(--color-primary) !important;
}

.ant-radio-inner {
    background: var(--glass-bg-light) !important;
    border-color: var(--glass-border-light) !important;
}

.ant-radio-checked .ant-radio-inner {
    border-color: var(--color-primary) !important;
    background: var(--glass-bg-light) !important;
}

.ant-radio-checked .ant-radio-inner::after {
    background-color: var(--color-primary) !important;
}

.ant-radio-wrapper-checked {
    color: var(--color-primary) !important;
}

/* ---- Radio Button Overrides ---- */

.ant-radio-button-wrapper {
    background: var(--glass-bg-light) !important;
    border-color: var(--glass-border) !important;
    color: var(--text-secondary) !important;
}

.ant-radio-button-wrapper:hover {
    color: var(--color-primary) !important;
}

.ant-radio-button-wrapper-checked {
    background: var(--color-primary-soft) !important;
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
}

.ant-radio-button-wrapper-checked:hover {
    background: var(--color-primary-medium) !important;
    border-color: var(--color-primary-light) !important;
    color: var(--color-primary-light) !important;
}

/* ---- Checkbox Overrides ---- */

.ant-checkbox-wrapper {
    color: var(--text-primary) !important;
}

.ant-checkbox-checked .ant-checkbox-inner {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

/* ---- Switch Overrides ---- */

.ant-switch-checked {
    background-color: var(--color-primary) !important;
}

/* ---- Timeline Overrides ---- */

.ant-timeline-item-tail {
    border-left-color: var(--glass-border) !important;
}

.ant-timeline-item-head {
    background: var(--color-bg-dark) !important;
}

.ant-timeline-item-content {
    color: var(--text-primary) !important;
}

/* ---- Tree Overrides ---- */

.ant-tree {
    background: transparent !important;
    color: var(--text-primary) !important;
}

.ant-tree .ant-tree-node-content-wrapper {
    color: var(--text-primary) !important;
}

.ant-tree .ant-tree-node-content-wrapper:hover {
    background: rgba(255, 255, 255, 0.06) !important;
}

.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected {
    background: var(--color-primary-soft) !important;
    color: var(--color-primary) !important;
}

.ant-tree .ant-tree-switcher {
    color: var(--text-secondary) !important;
}

/* ---- Progress Overrides ---- */

.ant-progress-inner {
    background-color: rgba(255, 255, 255, 0.08) !important;
}

/* ---- Badge Overrides ---- */

.ant-badge-status-text {
    color: var(--text-primary) !important;
}

/* ---- Pagination ---- */

.ant-pagination-item {
    background: var(--glass-bg-light) !important;
    border-color: var(--glass-border) !important;
}

.ant-pagination-item a {
    color: var(--text-secondary) !important;
}

.ant-pagination-item-active {
    border-color: var(--color-primary) !important;
}

.ant-pagination-item-active a {
    color: var(--color-primary) !important;
}

.ant-pagination-prev .ant-pagination-item-link,
.ant-pagination-next .ant-pagination-item-link {
    background: var(--glass-bg-light) !important;
    border-color: var(--glass-border) !important;
    color: var(--text-secondary) !important;
}

/* ---- Skeleton ---- */

.ant-skeleton-content .ant-skeleton-title {
    background: linear-gradient(90deg, var(--glass-bg-light) 25%, rgba(255, 255, 255, 0.08) 50%, var(--glass-bg-light) 75%) !important;
    background-size: 400% 100% !important;
}

.ant-skeleton-content .ant-skeleton-paragraph > li {
    background: linear-gradient(90deg, var(--glass-bg-light) 25%, rgba(255, 255, 255, 0.08) 50%, var(--glass-bg-light) 75%) !important;
    background-size: 400% 100% !important;
}

.ant-skeleton-avatar {
    background: var(--glass-bg-light) !important;
}

/* ---- Utility Classes ---- */

.glass-card-hover {
    transition: all var(--transition-fast);
}

.glass-card-hover:hover {
    border-color: var(--glass-border-light);
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.text-muted {
    color: var(--text-muted);
}

/* ---- Animations ---- */

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* ---- Skeleton Loading ---- */

@keyframes shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.skeleton {
    background: linear-gradient(
        90deg,
        var(--glass-bg) 25%,
        rgba(255, 255, 255, 0.08) 50%,
        var(--glass-bg) 75%
    );
    background-size: 200% 100%;
    animation: shimmer 1.5s ease-in-out infinite;
    border-radius: var(--radius-sm);
}

.skeleton-text {
    height: 14px;
    margin-bottom: 8px;
    width: 100%;
}

.skeleton-text:nth-child(odd) { width: 85%; }
.skeleton-text:nth-child(3n) { width: 65%; }
.skeleton-text:last-child { width: 45%; }

.skeleton-title {
    height: 22px;
    width: 55%;
    margin-bottom: 16px;
    border-radius: var(--radius-sm);
}

.skeleton-card {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    padding: var(--space-lg);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.skeleton-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex-shrink: 0;
}

.skeleton-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

/* ---- Page Entry Animation ---- */

@keyframes pageEnter {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.page-enter {
    animation: pageEnter 300ms ease both;
}

/* ---- Toast Overrides ---- */

.ant-message-notice-content {
    background: rgba(20, 24, 33, 0.95) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-md) !important;
    color: rgba(255, 255, 255, 0.85) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
    padding: 10px 16px !important;
}

.ant-message-success .ant-message-notice-content {
    border-left: 3px solid var(--color-success) !important;
}

.ant-message-warning .ant-message-notice-content {
    border-left: 3px solid var(--color-warning) !important;
}

.ant-message-error .ant-message-notice-content {
    border-left: 3px solid var(--color-error) !important;
}

.ant-message-info .ant-message-notice-content {
    border-left: 3px solid var(--color-info) !important;
}

.ant-message-success .anticon { color: var(--color-success) !important; }
.ant-message-warning .anticon { color: var(--color-warning) !important; }
.ant-message-error .anticon { color: var(--color-error) !important; }
.ant-message-info .anticon { color: var(--color-info) !important; }

.ant-message-custom-content > span:last-child {
    color: rgba(255, 255, 255, 0.85) !important;
}

/* ---- Undo Toast ---- */

.undo-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1060;
    background: rgba(20, 24, 33, 0.95);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: var(--space-md);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
    color: rgba(255, 255, 255, 0.85);
    font-family: var(--font-body);
    font-size: var(--font-size-sm);
    min-width: 280px;
    animation: pageEnter 200ms ease both;
}

.undo-toast-text {
    flex: 1;
}

.undo-toast-action {
    color: var(--color-primary);
    font-weight: 600;
    cursor: pointer;
    border: none;
    background: none;
    padding: 4px 8px;
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: var(--font-size-sm);
    transition: background var(--transition-fast);
    white-space: nowrap;
}

.undo-toast-action:hover {
    background: var(--color-primary-subtle);
}

.undo-toast-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 2px;
    background: var(--color-primary);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    animation: undoCountdown linear forwards;
}

@keyframes undoCountdown {
    from { width: 100%; }
    to { width: 0%; }
}

.undo-toast-exit {
    animation: toastFadeOut 200ms ease forwards;
}

@keyframes toastFadeOut {
    to {
        opacity: 0;
        transform: translateX(-50%) translateY(8px);
    }
}

/* ---- Optimistic Item Removal ---- */

@keyframes itemFadeOut {
    to {
        opacity: 0;
        transform: scale(0.95);
    }
}

.item-removing {
    animation: itemFadeOut 250ms ease forwards;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .skeleton,
    .page-enter,
    .item-removing,
    .undo-toast,
    .undo-toast-progress,
    .undo-toast-exit {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* ========================================
   Markdown Content Rendering
   ======================================== */

.markdown-body {
    color: var(--text-primary);
    line-height: 1.7;
    font-size: 14px;
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
    font-family: var(--font-display);
    color: var(--text-primary);
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    font-weight: 600;
}

.markdown-body h1 { font-size: 1.75em; border-bottom: 1px solid var(--glass-border); padding-bottom: 0.3em; }
.markdown-body h2 { font-size: 1.4em; border-bottom: 1px solid var(--glass-border); padding-bottom: 0.3em; }
.markdown-body h3 { font-size: 1.2em; }
.markdown-body h4 { font-size: 1.05em; }

.markdown-body p {
    margin-bottom: 1em;
}

.markdown-body a {
    color: var(--color-primary);
    text-decoration: none;
}

.markdown-body a:hover {
    text-decoration: underline;
    color: var(--color-primary-light);
}

.markdown-body code {
    background: rgba(255, 255, 255, 0.1);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.9em;
    font-family: 'Cascadia Code', 'Fira Code', monospace;
}

.markdown-body pre {
    background: rgba(0, 0, 0, 0.3);
    padding: 16px;
    border-radius: var(--radius-sm);
    overflow-x: auto;
    border: 1px solid var(--glass-border);
    margin-bottom: 1em;
}

.markdown-body pre code {
    background: transparent;
    padding: 0;
    border-radius: 0;
    font-size: 0.85em;
}

.markdown-body table {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 1em;
}

.markdown-body th,
.markdown-body td {
    border: 1px solid var(--glass-border);
    padding: 8px 12px;
    text-align: left;
}

.markdown-body th {
    background: var(--color-bg-dark-tertiary);
    color: var(--text-secondary);
    font-weight: 600;
}

.markdown-body tr:hover td {
    background: rgba(255, 255, 255, 0.02);
}

.markdown-body blockquote {
    border-left: 4px solid var(--color-primary);
    padding-left: 16px;
    margin-left: 0;
    margin-bottom: 1em;
    color: var(--text-secondary);
}

.markdown-body ul,
.markdown-body ol {
    padding-left: 2em;
    margin-bottom: 1em;
}

.markdown-body li {
    margin-bottom: 0.25em;
}

.markdown-body ul.contains-task-list {
    list-style: none;
    padding-left: 0;
}

.markdown-body ul.contains-task-list li {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.markdown-body input[type="checkbox"] {
    margin-right: 8px;
    accent-color: var(--color-primary);
}

.markdown-body hr {
    border: none;
    border-top: 1px solid var(--glass-border);
    margin: 1.5em 0;
}

.markdown-body img {
    max-width: 100%;
    border-radius: var(--radius-sm);
}

.markdown-body del {
    color: var(--text-muted);
}

/* ========================================
   Prism.js Theme Overrides (Tool Call Blocks)
   ======================================== */

.tool-call-block pre[class*="language-"],
.tool-call-block code[class*="language-"] {
    background: transparent;
    text-shadow: none;
    font-family: var(--font-mono);
    font-size: 12px;
    line-height: 1.5;
}

.tool-call-block .token.comment,
.tool-call-block .token.prolog,
.tool-call-block .token.doctype,
.tool-call-block .token.cdata {
    color: rgba(255, 255, 255, 0.35);
}

.tool-call-block .token.punctuation {
    color: rgba(255, 255, 255, 0.5);
}

.tool-call-block .token.property,
.tool-call-block .token.tag,
.tool-call-block .token.boolean,
.tool-call-block .token.number,
.tool-call-block .token.constant,
.tool-call-block .token.symbol {
    color: #d19a66;
}

.tool-call-block .token.selector,
.tool-call-block .token.attr-name,
.tool-call-block .token.string,
.tool-call-block .token.char,
.tool-call-block .token.builtin {
    color: #98c379;
}

.tool-call-block .token.operator,
.tool-call-block .token.entity,
.tool-call-block .token.url {
    color: #56b6c2;
}

.tool-call-block .token.atrule,
.tool-call-block .token.attr-value,
.tool-call-block .token.keyword {
    color: #c678dd;
}

.tool-call-block .token.function,
.tool-call-block .token.class-name {
    color: #61afef;
}

.tool-call-block .token.regex,
.tool-call-block .token.important,
.tool-call-block .token.variable {
    color: #e5c07b;
}

/* ========================================
   ANSI Color Classes (ansi_up)
   ======================================== */

/* Foreground colors */
.ansi-black { color: #5c6370; }
.ansi-red { color: #e06c75; }
.ansi-green { color: #98c379; }
.ansi-yellow { color: #e5c07b; }
.ansi-blue { color: #61afef; }
.ansi-magenta { color: #c678dd; }
.ansi-cyan { color: #56b6c2; }
.ansi-white { color: #abb2bf; }

/* Bright foreground colors */
.ansi-bright-black { color: #7f848e; }
.ansi-bright-red { color: #f44747; }
.ansi-bright-green { color: #b5cea8; }
.ansi-bright-yellow { color: #ffd700; }
.ansi-bright-blue { color: #89b4fa; }
.ansi-bright-magenta { color: #d19a66; }
.ansi-bright-cyan { color: #7ec8e3; }
.ansi-bright-white { color: #ffffff; }

/* Background colors */
.ansi-bg-black { background-color: rgba(40, 44, 52, 0.5); }
.ansi-bg-red { background-color: rgba(224, 108, 117, 0.2); }
.ansi-bg-green { background-color: rgba(152, 195, 121, 0.2); }
.ansi-bg-yellow { background-color: rgba(229, 192, 123, 0.2); }
.ansi-bg-blue { background-color: rgba(97, 175, 239, 0.2); }
.ansi-bg-magenta { background-color: rgba(198, 120, 221, 0.2); }
.ansi-bg-cyan { background-color: rgba(86, 182, 194, 0.2); }
.ansi-bg-white { background-color: rgba(171, 178, 191, 0.1); }

/* Text styles */
.ansi-bold { font-weight: 700; }
.ansi-italic { font-style: italic; }
.ansi-underline { text-decoration: underline; }
.ansi-strikethrough { text-decoration: line-through; }
