/* CIM UI 1.6 semantic theme bridge. Existing component classes inherit these
   variables, so old integrations keep working while new screens gain themes. */
:root {
    --cim-app-bg: var(--cim-color-bg-page);
    --cim-app-surface: var(--cim-color-surface);
    --cim-app-surface-muted: var(--cim-color-surface-muted);
    --cim-app-text: var(--cim-color-text);
    --cim-app-text-secondary: var(--cim-color-text-secondary);
    --cim-app-border: var(--cim-color-border);
    --cim-overlay-bg: rgba(15,24,31,var(--cim-modal-overlay-opacity,.48));
}

html[data-cim-theme="dark"] { color-scheme:dark; }
html[data-cim-theme="light"] { color-scheme:light; }

.cim-ui-scope,
.cim-app-shell {
    color:var(--cim-color-text);
    font-weight:var(--cim-font-body-weight,450);
    line-height:var(--cim-font-line-height,1.55);
}
.cim-ui-scope h1,.cim-ui-scope h2,.cim-ui-scope h3,.cim-ui-scope h4,
.cim-app-shell h1,.cim-app-shell h2,.cim-app-shell h3,.cim-app-shell h4 {
    font-weight:var(--cim-font-heading-weight,700);
    letter-spacing:var(--cim-font-heading-letter-spacing,-.025em);
}

.cim-app-shell {
    position:relative;
    isolation:isolate;
    background:var(--cim-app-bg)!important;
}
.cim-app-shell::before {
    content:"";
    position:fixed;
    z-index:-1;
    right:var(--cim-aurora-right,-12vw);
    bottom:var(--cim-aurora-bottom,-30vh);
    width:var(--cim-aurora-size,72%);
    aspect-ratio:var(--cim-aurora-aspect,1.35);
    opacity:calc(var(--cim-aurora-enabled,0) * var(--cim-aurora-opacity,.22));
    background:
        radial-gradient(circle at var(--cim-aurora-blue-x,22%) var(--cim-aurora-blue-y,72%),var(--cim-aurora-blue) 0,transparent var(--cim-aurora-blue-fade,48%)),
        radial-gradient(circle at var(--cim-aurora-magenta-x,76%) var(--cim-aurora-magenta-y,62%),var(--cim-aurora-magenta) 0,transparent var(--cim-aurora-magenta-fade,47%)),
        radial-gradient(circle at var(--cim-aurora-orange-x,55%) var(--cim-aurora-orange-y,42%),var(--cim-aurora-orange) 0,transparent var(--cim-aurora-orange-fade,54%));
    filter:blur(var(--cim-aurora-blur,90px));
    pointer-events:none;
}

.cim-app-sidebar { background:var(--cim-app-sidebar-bg)!important; }
.cim-app-topbar { background:color-mix(in srgb,var(--cim-app-topbar-bg) 94%,transparent)!important; }
.cim-app-nav a { min-height:var(--cim-app-nav-item-height); border-radius:var(--cim-app-nav-radius); font-size:var(--cim-app-nav-font-size); }
.cim-app-nav__icon,.cim-app-nav__icon svg { width:var(--cim-app-nav-icon-size); height:var(--cim-app-nav-icon-size); }
.cim-app-nav a.is-active,.cim-app-nav .current-menu-item > a { color:var(--cim-app-nav-active-color)!important; }
.cim-app-topbar__link,.cim-app-sidebar-toggle,.cim-app-mobile-toggle,.cim-theme-toggle,.cim-stat-card,.cim-panel,.cim-ui-card,.cim-ui-table-wrap,.cim-ui-modal__dialog,.cim-ui-toast {
    background:var(--cim-color-surface)!important;
    color:var(--cim-color-text);
}
.cim-stat-card,.cim-panel,.cim-ui-card { border-width:var(--cim-card-border-width,1px); }
.cim-ui-card:hover { border-color:color-mix(in srgb,var(--cim-color-border-strong) calc(var(--cim-card-hover-border-opacity,.65) * 100%),transparent); }
.cim-ui-aurora-card {
    background:
        radial-gradient(circle at 94% -12%,color-mix(in srgb,var(--cim-aurora-orange,#f45a2a) 24%,transparent) 0,transparent 38%),
        radial-gradient(circle at 106% 48%,color-mix(in srgb,var(--cim-aurora-blue,#3f66ff) 16%,transparent) 0,transparent 46%),
        var(--cim-color-surface)!important;
}

.cim-ui-input,.cim-ui-select,.cim-ui-textarea {
    border-width:var(--cim-form-border-width,1px)!important;
    background:var(--cim-color-surface)!important;
    color:var(--cim-color-text)!important;
}
.cim-ui-label { font-size:var(--cim-form-label-size,13px)!important; }
.cim-ui-help,.cim-ui-field small { font-size:var(--cim-form-help-size,12px)!important; }

.cim-ui-table-wrap { border-color:var(--cim-table-border-color,var(--cim-color-border))!important; border-width:var(--cim-table-border-width,1px)!important; border-radius:var(--cim-table-radius,14px)!important; }
.cim-ui-table { font-size:var(--cim-table-body-font-size,14px); }
.cim-ui-table thead th { background:var(--cim-table-header-bg)!important; font-size:var(--cim-table-header-font-size,12px); font-weight:var(--cim-table-header-weight,650); }
.cim-ui-table tbody tr { height:var(--cim-table-row-height,54px); }
.cim-ui-table th,.cim-ui-table td { padding:var(--cim-table-cell-padding-y,13px) var(--cim-table-cell-padding-x,16px)!important; }
.cim-ui-table tbody tr:nth-child(even) td { background:var(--cim-table-zebra-row-bg,transparent); }
.cim-ui-table tbody tr:hover td { background:var(--cim-table-row-hover-bg); }

.cim-ui-list { display:grid; gap:var(--cim-list-gap,10px); }
.cim-ui-list__item { padding:var(--cim-list-item-padding,14px); border:1px solid var(--cim-color-border); border-radius:var(--cim-list-item-radius,12px); background:var(--cim-color-surface); }

.cim-ui-product-group { border-width:var(--cim-catalog-product-border-width,1px)!important; }
.cim-ui-product-group__head { padding:var(--cim-catalog-product-padding,18px)!important; }
.cim-ui-product-group__title { font-size:var(--cim-catalog-product-name-size,15px)!important; }
.cim-ui-product-group__meta,.cim-ui-meta { font-size:var(--cim-catalog-meta-size,12px)!important; }
.cim-ui-package-row { padding:var(--cim-catalog-package-padding,13px)!important; border-radius:var(--cim-catalog-package-radius,10px); }
.cim-ui-price { color:var(--cim-catalog-price-color,var(--cim-color-heading))!important; }

.cim-site-header,.cim-header {
    min-height:var(--cim-header-height);
    border-bottom-width:var(--cim-header-border-width);
    background:var(--cim-header-bg);
    box-shadow:0 8px 28px rgba(24,35,43,var(--cim-header-shadow-opacity));
}
.cim-header-inner { padding:var(--cim-header-inner-pad-y) var(--cim-header-inner-pad-x); }
.cim-site-header__logo,.cim-header__logo,.cim-brand-logo { transform:translate(var(--cim-logo-offset-x),var(--cim-logo-offset-y)); }
.cim-site-header nav a,.cim-header nav a,.cim-nav-list a { color:var(--cim-nav-color); font-weight:var(--cim-nav-weight); line-height:var(--cim-nav-line-height); letter-spacing:var(--cim-nav-letter-spacing); }
.cim-site-header nav a:hover,.cim-header nav a:hover,.cim-nav-list a:hover { color:var(--cim-nav-hover-color); }
.cim-site-header nav .current-menu-item>a,.cim-header nav .current-menu-item>a,.cim-nav-list .current-menu-item>a { color:var(--cim-nav-active-color); }
.cim-site-header .sub-menu,.cim-header .sub-menu,.cim-nav-list .sub-menu { width:var(--cim-nav-dropdown-width); padding:var(--cim-nav-dropdown-padding); border-radius:var(--cim-nav-dropdown-radius); box-shadow:0 18px 48px rgba(24,35,43,var(--cim-nav-dropdown-shadow-opacity)); }
.cim-site-header .sub-menu a,.cim-header .sub-menu a,.cim-nav-list .sub-menu a { min-height:var(--cim-nav-dropdown-item-height); }
.cim-mobile-menu,.cim-mobile-panel { width:min(100%,var(--cim-mobile-menu-width)); padding:var(--cim-mobile-menu-padding); background:var(--cim-mobile-menu-bg); }
.cim-mobile-menu a,.cim-mobile-panel a { min-height:var(--cim-mobile-menu-item-height); border-radius:var(--cim-mobile-menu-item-radius); font-size:var(--cim-mobile-menu-font-size); }
body.cim-header-sticky :is(.cim-site-header,.cim-header) { position:sticky; z-index:100; top:0; }
body.cim-catalog-toolbar-sticky .cim-catalog-toolbar { position:sticky; z-index:30; top:0; }

.cim-ui-modal__backdrop { background:var(--cim-overlay-bg)!important; backdrop-filter:blur(var(--cim-modal-backdrop-blur,4px)); }
.cim-ui-modal__dialog { width:min(calc(100% - 32px),var(--cim-modal-width,620px)); border-radius:var(--cim-modal-radius,20px)!important; }
.cim-ui-toast-stack { width:min(calc(100vw - 32px),var(--cim-toast-width,380px)); }
.cim-toast-top-left .cim-ui-toast-stack { left:20px; right:auto; top:20px; bottom:auto; }
.cim-toast-top-right .cim-ui-toast-stack { left:auto; right:20px; top:20px; bottom:auto; }
.cim-toast-bottom-left .cim-ui-toast-stack { left:20px; right:auto; top:auto; bottom:20px; }
.cim-toast-bottom-right .cim-ui-toast-stack { left:auto; right:20px; top:auto; bottom:20px; }
.cim-ui-alert,.cim-ui-toast,.woocommerce-message,.woocommerce-info,.woocommerce-error { border-radius:var(--cim-notice-radius,12px)!important; }

.cim-theme-toggle {
    display:inline-grid;
    grid-auto-flow:column;
    place-items:center;
    gap:7px;
    min-height:38px;
    padding:0 12px;
    border:1px solid var(--cim-color-border);
    border-radius:var(--cim-btn-radius);
    background:var(--cim-color-surface);
    color:var(--cim-color-text);
    cursor:pointer;
}

html[data-cim-theme="dark"] .cim-ui-btn--secondary,
html[data-cim-theme="dark"] .cim-ui-btn--ghost { color:var(--cim-color-heading); }
html[data-cim-theme="dark"] .cim-ui-card--muted { background:var(--cim-color-surface-muted)!important; }
html[data-cim-theme="dark"] .cim-app-shell img { filter:none; }
html[data-cim-theme="dark"] .cim-app-shell.is-sidebar-collapsed .cim-app-nav a::after { background:var(--cim-color-surface)!important; color:var(--cim-color-heading)!important; border-color:var(--cim-color-border)!important; }

body.cim-density-compact .cim-app-content { --cim-app-page-padding:calc(var(--cim-app-page-padding) * .78); }
body.cim-density-compact .cim-panel { --cim-app-panel-padding:calc(var(--cim-app-panel-padding) * .78); }

@media (prefers-reduced-motion:reduce) {
    .cim-app-shell::before { filter:blur(var(--cim-aurora-blur,90px)); }
}
