/* ==========================================================================
   CoreAdmin — Main Stylesheet
   Author:  Coreasons (https://coreasons.com)
   ========================================================================== */

/* ── CSS Custom Properties (Neutral/Default scheme) ───────────────────── */
:root {
    --ca-sidebar-width: 260px;
    --ca-sidebar-collapsed-width: 64px;
    --ca-navbar-height: 56px;
    --ca-footer-height: auto;
    --ca-transition: 0.25s ease;
    --ca-radius: 6px;
    --ca-radius-lg: 10px;
    --ca-shadow-sm: 0 1px 4px rgba(0,0,0,.08);
    --ca-shadow: 0 2px 12px rgba(0,0,0,.12);
    --ca-shadow-lg: 0 8px 32px rgba(0,0,0,.16);
    --ca-font: 'Inter', system-ui, -apple-system, sans-serif;
    --ca-font-size: 14px;
    --ca-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --ca-z-sidebar: 1000;
    --ca-z-navbar: 900;
    --ca-z-overlay: 800;
    --ca-z-dropdown: 1100;
    --ca-z-search: 1200;

    /* Neutral scheme tokens */
    --ca-bg:            #f0f2f5;
    --ca-surface:       #ffffff;
    --ca-surface-2:     #f8f9fa;
    --ca-border:        #e3e6f0;
    --ca-text:          #2d3748;
    --ca-text-muted:    #718096;
    --ca-text-inv:      #ffffff;
    --ca-primary:       #4e73df;
    --ca-primary-hover: #3a5bc7;
    --ca-primary-rgb:   78, 115, 223;
    --ca-accent:        #1cc88a;
    --ca-warning:       #f6c23e;
    --ca-danger:        #e74a3b;
    --ca-info:          #36b9cc;

    --ca-sidebar-bg:       #ffffff;
    --ca-sidebar-border:   #e3e6f0;
    --ca-sidebar-text:     #5a5c69;
    --ca-sidebar-text-hover: #2d3748;
    --ca-sidebar-hover:    #f0f2f5;
    --ca-sidebar-active:   rgba(78, 115, 223, .1);
    --ca-sidebar-active-text: #4e73df;
    --ca-sidebar-active-bar: #4e73df;
    --ca-brand-bg:         #4e73df;
    --ca-brand-text:       #ffffff;

    --ca-navbar-bg:        #ffffff;
    --ca-navbar-border:    #e3e6f0;
    --ca-navbar-text:      #5a5c69;
    --ca-navbar-icon:      #858796;
    --ca-navbar-hover:     #f0f2f5;

    --ca-footer-bg:        #ffffff;
    --ca-footer-border:    #e3e6f0;
    --ca-footer-text:      #858796;

    --ca-input-bg:         #ffffff;
    --ca-input-border:     #d1d3e2;
    --ca-input-text:       #2d3748;
    --ca-input-focus:      rgba(78, 115, 223, .25);

    --ca-scrollbar:        #e3e6f0;
    --ca-scrollbar-thumb:  #c0c4cc;
}

/* ── Dark scheme ─────────────────────────────────────────────────────── */
.ca-scheme-dark {
    --ca-bg:            #1a1a2e;
    --ca-surface:       #16213e;
    --ca-surface-2:     #0f3460;
    --ca-border:        #2a2a4a;
    --ca-text:          #e2e8f0;
    --ca-text-muted:    #94a3b8;
    --ca-text-inv:      #ffffff;
    --ca-primary:       #6c8fff;
    --ca-primary-hover: #8ca5ff;
    --ca-primary-rgb:   108, 143, 255;
    --ca-accent:        #00d9a0;
    --ca-warning:       #fbbf24;
    --ca-danger:        #f87171;
    --ca-info:          #38bdf8;

    --ca-sidebar-bg:       #0f172a;
    --ca-sidebar-border:   #1e293b;
    --ca-sidebar-text:     #94a3b8;
    --ca-sidebar-text-hover: #e2e8f0;
    --ca-sidebar-hover:    #1e293b;
    --ca-sidebar-active:   rgba(108, 143, 255, .15);
    --ca-sidebar-active-text: #6c8fff;
    --ca-sidebar-active-bar: #6c8fff;
    --ca-brand-bg:         #0f172a;
    --ca-brand-text:       #6c8fff;

    --ca-navbar-bg:        #0f172a;
    --ca-navbar-border:    #1e293b;
    --ca-navbar-text:      #94a3b8;
    --ca-navbar-icon:      #64748b;
    --ca-navbar-hover:     #1e293b;

    --ca-footer-bg:        #0f172a;
    --ca-footer-border:    #1e293b;
    --ca-footer-text:      #64748b;

    --ca-input-bg:         #1e293b;
    --ca-input-border:     #334155;
    --ca-input-text:       #e2e8f0;
    --ca-input-focus:      rgba(108, 143, 255, .3);

    --ca-scrollbar:        #1e293b;
    --ca-scrollbar-thumb:  #334155;
}

/* ── Neo / Cyberpunk scheme ──────────────────────────────────────────── */
.ca-scheme-neo {
    --ca-bg:            #050505;
    --ca-surface:       #0d0d0d;
    --ca-surface-2:     #111111;
    --ca-border:        #00ff4120;
    --ca-text:          #e0ffe8;
    --ca-text-muted:    #66ff99;
    --ca-text-inv:      #000000;
    --ca-primary:       #00ff41;
    --ca-primary-hover: #00cc33;
    --ca-primary-rgb:   0, 255, 65;
    --ca-accent:        #ff00ff;
    --ca-warning:       #ffff00;
    --ca-danger:        #ff3366;
    --ca-info:          #00ffff;

    --ca-sidebar-bg:       #080808;
    --ca-sidebar-border:   #00ff4115;
    --ca-sidebar-text:     #33ff66;
    --ca-sidebar-text-hover: #00ff41;
    --ca-sidebar-hover:    #00ff4110;
    --ca-sidebar-active:   #00ff4120;
    --ca-sidebar-active-text: #00ff41;
    --ca-sidebar-active-bar: #00ff41;
    --ca-brand-bg:         #000000;
    --ca-brand-text:       #00ff41;

    --ca-navbar-bg:        #060606;
    --ca-navbar-border:    #00ff4115;
    --ca-navbar-text:      #33ff66;
    --ca-navbar-icon:      #00cc33;
    --ca-navbar-hover:     #00ff4110;

    --ca-footer-bg:        #060606;
    --ca-footer-border:    #00ff4115;
    --ca-footer-text:      #00cc33;

    --ca-input-bg:         #0d0d0d;
    --ca-input-border:     #00ff4130;
    --ca-input-text:       #e0ffe8;
    --ca-input-focus:      rgba(0, 255, 65, .25);

    --ca-scrollbar:        #0d0d0d;
    --ca-scrollbar-thumb:  #00ff4130;
}

/* ── Dracula scheme ──────────────────────────────────────────────────── */
.ca-scheme-dracula {
    --ca-bg:            #1e1f29;
    --ca-surface:       #282a36;
    --ca-surface-2:     #2f3145;
    --ca-border:        #44475a;
    --ca-text:          #f8f8f2;
    --ca-text-muted:    #6272a4;
    --ca-text-inv:      #282a36;
    --ca-primary:       #bd93f9;
    --ca-primary-hover: #caa8ff;
    --ca-primary-rgb:   189, 147, 249;
    --ca-accent:        #ff79c6;
    --ca-warning:       #f1fa8c;
    --ca-danger:        #ff5555;
    --ca-info:          #8be9fd;

    --ca-sidebar-bg:       #21222c;
    --ca-sidebar-border:   #44475a;
    --ca-sidebar-text:     #6272a4;
    --ca-sidebar-text-hover: #f8f8f2;
    --ca-sidebar-hover:    #44475a40;
    --ca-sidebar-active:   rgba(189, 147, 249, .15);
    --ca-sidebar-active-text: #bd93f9;
    --ca-sidebar-active-bar: #bd93f9;
    --ca-brand-bg:         #1a1b26;
    --ca-brand-text:       #bd93f9;

    --ca-navbar-bg:        #21222c;
    --ca-navbar-border:    #44475a;
    --ca-navbar-text:      #6272a4;
    --ca-navbar-icon:      #6272a4;
    --ca-navbar-hover:     #44475a40;

    --ca-footer-bg:        #21222c;
    --ca-footer-border:    #44475a;
    --ca-footer-text:      #6272a4;

    --ca-input-bg:         #282a36;
    --ca-input-border:     #44475a;
    --ca-input-text:       #f8f8f2;
    --ca-input-focus:      rgba(189, 147, 249, .3);

    --ca-scrollbar:        #282a36;
    --ca-scrollbar-thumb:  #44475a;
}

/* ── Monokai scheme ──────────────────────────────────────────────────── */
.ca-scheme-monokai {
    --ca-bg:            #1c1e1b;
    --ca-surface:       #272822;
    --ca-surface-2:     #2d2f2a;
    --ca-border:        #3d3f37;
    --ca-text:          #f8f8f2;
    --ca-text-muted:    #75715e;
    --ca-text-inv:      #272822;
    --ca-primary:       #a6e22e;
    --ca-primary-hover: #baf045;
    --ca-primary-rgb:   166, 226, 46;
    --ca-accent:        #f92672;
    --ca-warning:       #e6db74;
    --ca-danger:        #f92672;
    --ca-info:          #66d9e8;

    --ca-sidebar-bg:       #1e1f1c;
    --ca-sidebar-border:   #3d3f37;
    --ca-sidebar-text:     #75715e;
    --ca-sidebar-text-hover: #f8f8f2;
    --ca-sidebar-hover:    #3d3f3720;
    --ca-sidebar-active:   rgba(166, 226, 46, .12);
    --ca-sidebar-active-text: #a6e22e;
    --ca-sidebar-active-bar: #a6e22e;
    --ca-brand-bg:         #1a1b18;
    --ca-brand-text:       #a6e22e;

    --ca-navbar-bg:        #1e1f1c;
    --ca-navbar-border:    #3d3f37;
    --ca-navbar-text:      #75715e;
    --ca-navbar-icon:      #75715e;
    --ca-navbar-hover:     #3d3f3730;

    --ca-footer-bg:        #1e1f1c;
    --ca-footer-border:    #3d3f37;
    --ca-footer-text:      #75715e;

    --ca-input-bg:         #272822;
    --ca-input-border:     #3d3f37;
    --ca-input-text:       #f8f8f2;
    --ca-input-focus:      rgba(166, 226, 46, .25);

    --ca-scrollbar:        #272822;
    --ca-scrollbar-thumb:  #3d3f37;
}

/* ── Nord scheme ─────────────────────────────────────────────────────── */
.ca-scheme-nord {
    --ca-bg:            #2e3440;
    --ca-surface:       #3b4252;
    --ca-surface-2:     #434c5e;
    --ca-border:        #4c566a;
    --ca-text:          #eceff4;
    --ca-text-muted:    #d8dee9;
    --ca-text-inv:      #2e3440;
    --ca-primary:       #88c0d0;
    --ca-primary-hover: #a3cfdd;
    --ca-primary-rgb:   136, 192, 208;
    --ca-accent:        #81a1c1;
    --ca-warning:       #ebcb8b;
    --ca-danger:        #bf616a;
    --ca-info:          #8fbcbb;

    --ca-sidebar-bg:       #2e3440;
    --ca-sidebar-border:   #3b4252;
    --ca-sidebar-text:     #d8dee9;
    --ca-sidebar-text-hover: #eceff4;
    --ca-sidebar-hover:    #3b425240;
    --ca-sidebar-active:   rgba(136, 192, 208, .2);
    --ca-sidebar-active-text: #88c0d0;
    --ca-sidebar-active-bar: #88c0d0;
    --ca-brand-bg:         #242933;
    --ca-brand-text:       #88c0d0;

    --ca-navbar-bg:        #2e3440;
    --ca-navbar-border:    #3b4252;
    --ca-navbar-text:      #d8dee9;
    --ca-navbar-icon:      #adb5c2;
    --ca-navbar-hover:     #3b425240;

    --ca-footer-bg:        #2e3440;
    --ca-footer-border:    #3b4252;
    --ca-footer-text:      #adb5c2;

    --ca-input-bg:         #3b4252;
    --ca-input-border:     #4c566a;
    --ca-input-text:       #eceff4;
    --ca-input-focus:      rgba(136, 192, 208, .3);

    --ca-scrollbar:        #3b4252;
    --ca-scrollbar-thumb:  #4c566a;
}

/* ── Solarized Dark scheme ───────────────────────────────────────────── */
.ca-scheme-solarized {
    --ca-bg:            #002b36;
    --ca-surface:       #073642;
    --ca-surface-2:     #094652;
    --ca-border:        #0d5260;
    --ca-text:          #839496;
    --ca-text-muted:    #586e75;
    --ca-text-inv:      #002b36;
    --ca-primary:       #268bd2;
    --ca-primary-hover: #2fa0ee;
    --ca-primary-rgb:   38, 139, 210;
    --ca-accent:        #2aa198;
    --ca-warning:       #b58900;
    --ca-danger:        #dc322f;
    --ca-info:          #2aa198;

    --ca-sidebar-bg:       #002b36;
    --ca-sidebar-border:   #073642;
    --ca-sidebar-text:     #657b83;
    --ca-sidebar-text-hover: #93a1a1;
    --ca-sidebar-hover:    #07364230;
    --ca-sidebar-active:   rgba(38, 139, 210, .15);
    --ca-sidebar-active-text: #268bd2;
    --ca-sidebar-active-bar: #268bd2;
    --ca-brand-bg:         #001f27;
    --ca-brand-text:       #268bd2;

    --ca-navbar-bg:        #002b36;
    --ca-navbar-border:    #073642;
    --ca-navbar-text:      #657b83;
    --ca-navbar-icon:      #586e75;
    --ca-navbar-hover:     #07364230;

    --ca-footer-bg:        #002b36;
    --ca-footer-border:    #073642;
    --ca-footer-text:      #586e75;

    --ca-input-bg:         #073642;
    --ca-input-border:     #0d5260;
    --ca-input-text:       #839496;
    --ca-input-focus:      rgba(38, 139, 210, .3);

    --ca-scrollbar:        #073642;
    --ca-scrollbar-thumb:  #0d5260;
}

/* ==========================================================================
   WordPress Required Classes
   ========================================================================== */

/* Captions */
.wp-caption {
    max-width: 100%;
    margin-bottom: 1.5em;
}
.wp-caption img[class*="wp-image-"] {
    display: block;
    width: 100%;
    height: auto;
}
.wp-caption-text {
    font-size: .8125rem;
    color: var(--ca-text-muted);
    text-align: center;
    padding: 6px 0 4px;
    margin: 0;
}

/* Sticky posts */
.sticky {
    position: relative;
}
.sticky .ca-post-header::before {
    content: '\F3F1'; /* bi-pin-fill */
    font-family: 'bootstrap-icons';
    font-size: .75rem;
    color: var(--ca-primary);
    margin-right: 6px;
    vertical-align: middle;
}

/* Gallery caption */
.gallery-caption {
    display: block;
    font-size: .8125rem;
    color: var(--ca-text-muted);
    text-align: center;
    padding: 4px 0;
}

/* Comment author highlight */
.bypostauthor > .ca-comment-body {
    border-left: 3px solid var(--ca-primary);
    padding-left: 12px;
}

/* Screen reader text — generated by WordPress core */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}
.screen-reader-text:focus {
    background-color: var(--ca-surface);
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0,0,0,.2);
    clip: auto !important;
    clip-path: none;
    color: var(--ca-text);
    display: block;
    font-size: .875rem;
    font-weight: 700;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* Comments */
.ca-comments { margin-top: 40px; }
.ca-comments-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--ca-text);
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ca-border);
}
.ca-comment-list {
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
}
.ca-comment {
    padding: 16px 0;
    border-bottom: 1px solid var(--ca-border);
}
.ca-comment:last-child { border-bottom: none; }
.ca-comment .children {
    list-style: none;
    padding-left: 40px;
    margin: 0;
}
.ca-comment-body { display: flex; flex-direction: column; gap: 10px; }
.ca-comment-meta {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.ca-comment-avatar img {
    border-radius: 50%;
    width: 40px;
    height: 40px;
}
.ca-comment-meta-info { flex: 1; }
.ca-comment-author { font-weight: 600; font-size: .875rem; color: var(--ca-text); display: block; }
.ca-comment-author a { color: inherit; text-decoration: none; }
.ca-comment-time { font-size: .78rem; color: var(--ca-text-muted); }
.ca-comment-edit { font-size: .78rem; margin-left: 8px; }
.ca-comment-reply a {
    font-size: .78rem;
    color: var(--ca-primary);
    text-decoration: none;
    white-space: nowrap;
}
.ca-comment-reply a:hover { text-decoration: underline; }
.ca-comment-awaiting {
    font-size: .8125rem;
    color: var(--ca-warning, #f6c23e);
    font-style: italic;
    margin: 0;
}
.ca-comment-content { font-size: .875rem; color: var(--ca-text); line-height: 1.6; padding-left: 52px; }
.ca-comment-content p:last-child { margin-bottom: 0; }

.ca-no-comments {
    font-size: .875rem;
    color: var(--ca-text-muted);
    font-style: italic;
    margin-bottom: 24px;
}
.ca-comment-form-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--ca-text);
    margin-bottom: 20px;
}
.ca-comment-form input[type="text"],
.ca-comment-form input[type="email"],
.ca-comment-form input[type="url"],
.ca-comment-form textarea {
    width: 100%;
    padding: 9px 12px;
    font-size: .875rem;
    font-family: var(--ca-font);
    color: var(--ca-input-text, var(--ca-text));
    background: var(--ca-input-bg, var(--ca-surface));
    border: 1.5px solid var(--ca-input-border, var(--ca-border));
    border-radius: var(--ca-radius);
    outline: none;
    box-sizing: border-box;
    transition: border-color var(--ca-transition);
}
.ca-comment-form input:focus,
.ca-comment-form textarea:focus {
    border-color: var(--ca-primary);
    box-shadow: 0 0 0 3px rgba(var(--ca-primary-rgb,78,115,223),.15);
}
.ca-comment-form textarea { min-height: 120px; resize: vertical; }

/* Alignments (block editor) */
.alignleft  { float: left;  margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { clear: both; margin: 0 auto 1.5em; display: block; }
.alignwide  { max-width: 1100px; margin-left: auto; margin-right: auto; }
.alignfull  { max-width: 100%; margin-left: calc(-1 * var(--ca-content-pad, 28px)); margin-right: calc(-1 * var(--ca-content-pad, 28px)); }

/* ── Reset & Base ────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    font-size: var(--ca-font-size);
    scroll-behavior: smooth;
}

body {
    font-family: var(--ca-font);
    background: var(--ca-bg);
    color: var(--ca-text);
    line-height: 1.6;
    overflow-x: hidden;
    transition: background var(--ca-transition), color var(--ca-transition);
}

a {
    color: var(--ca-primary);
    text-decoration: none;
    transition: color var(--ca-transition);
}
a:hover { color: var(--ca-primary-hover); }

img, svg { max-width: 100%; display: block; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--ca-scrollbar); }
::-webkit-scrollbar-thumb { background: var(--ca-scrollbar-thumb); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--ca-text-muted); }

/* ── Layout Shell ────────────────────────────────────────────────────── */
.ca-wrapper {
    display: flex;
    min-height: 100vh;
}

.ca-page-wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin-left: var(--ca-sidebar-width);
    transition: margin-left var(--ca-transition);
}

/* collapsed sidebar */
.ca-sidebar-collapsed .ca-page-wrapper {
    margin-left: var(--ca-sidebar-collapsed-width);
}

/* ── Sidebar ─────────────────────────────────────────────────────────── */
.ca-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--ca-sidebar-width);
    height: 100vh;
    background: var(--ca-sidebar-bg);
    border-right: 1px solid var(--ca-sidebar-border);
    display: flex;
    flex-direction: column;
    z-index: var(--ca-z-sidebar);
    transition: width var(--ca-transition), background var(--ca-transition), border-color var(--ca-transition);
    overflow: hidden;
}

.ca-sidebar-collapsed .ca-sidebar {
    width: var(--ca-sidebar-collapsed-width);
}

/* Brand */
.ca-sidebar-brand {
    height: var(--ca-navbar-height);
    display: flex;
    align-items: center;
    padding: 0 12px;
    background: var(--ca-brand-bg);
    border-bottom: 1px solid var(--ca-sidebar-border);
    flex-shrink: 0;
}

.ca-brand-link {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ca-brand-text) !important;
    font-weight: 700;
    font-size: 1.1rem;
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.ca-brand-icon {
    font-size: 1.4rem;
    flex-shrink: 0;
    color: var(--ca-brand-text);
}

.ca-brand-name {
    white-space: nowrap;
    opacity: 1;
    transition: opacity var(--ca-transition);
}

.ca-sidebar-collapsed .ca-brand-name { opacity: 0; }

.ca-brand-link img { height: 32px; width: auto; }

.ca-sidebar-toggle {
    background: none;
    border: none;
    color: var(--ca-brand-text);
    cursor: pointer;
    padding: 6px;
    border-radius: var(--ca-radius);
    font-size: 1.1rem;
    opacity: .7;
    transition: opacity .2s;
    flex-shrink: 0;
    display: none; /* hidden on desktop – navbar toggle used instead */
}
.ca-sidebar-toggle:hover { opacity: 1; }

/* Scroll area */
.ca-sidebar-scroll {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px 0;
}

/* ── Sidebar Nav ─────────────────────────────────────────────────────── */
.ca-nav-list {
    list-style: none;
}

.ca-nav-item {
    position: relative;
}

.ca-nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    color: var(--ca-sidebar-text);
    transition: background var(--ca-transition), color var(--ca-transition);
    white-space: nowrap;
    position: relative;
    cursor: pointer;
}

.ca-nav-link:hover {
    background: var(--ca-sidebar-hover);
    color: var(--ca-sidebar-text-hover);
}

.ca-nav-item.active > .ca-nav-link {
    background: var(--ca-sidebar-active);
    color: var(--ca-sidebar-active-text);
    font-weight: 500;
}

.ca-nav-item.active > .ca-nav-link::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 3px;
    background: var(--ca-sidebar-active-bar);
    border-radius: 0 2px 2px 0;
}

.ca-nav-icon {
    font-size: 1rem;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
    transition: transform var(--ca-transition);
}

/* Custom PNG icon from media library */
.ca-nav-icon--img {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.ca-nav-icon--img img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    border-radius: 2px;
    filter: var(--ca-nav-icon-filter, none);
}

.ca-nav-label {
    flex: 1;
    opacity: 1;
    transition: opacity var(--ca-transition);
    font-size: .875rem;
}

.ca-nav-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    margin: 0 7px;
    flex-shrink: 0;
    opacity: .5;
}

.ca-nav-arrow {
    font-size: .7rem;
    margin-left: auto;
    transition: transform var(--ca-transition);
    flex-shrink: 0;
    opacity: .6;
}

.ca-nav-item.has-submenu.open > .ca-nav-link .ca-nav-arrow {
    transform: rotate(90deg);
}

/* Collapsed state */
.ca-sidebar-collapsed .ca-nav-label,
.ca-sidebar-collapsed .ca-nav-arrow { opacity: 0; pointer-events: none; }
.ca-sidebar-collapsed .ca-nav-link { padding: 12px 0; justify-content: center; }
.ca-sidebar-collapsed .ca-nav-icon { width: auto; }

/* Tooltip on collapsed */
.ca-sidebar-collapsed .ca-nav-item > .ca-nav-link::after {
    content: attr(data-tooltip);
    position: absolute;
    left: calc(var(--ca-sidebar-collapsed-width) + 8px);
    top: 50%;
    transform: translateY(-50%);
    background: var(--ca-surface);
    color: var(--ca-text);
    padding: 4px 10px;
    border-radius: var(--ca-radius);
    font-size: .8rem;
    white-space: nowrap;
    box-shadow: var(--ca-shadow);
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s;
    border: 1px solid var(--ca-border);
    z-index: 10;
}
.ca-sidebar-collapsed .ca-nav-item > .ca-nav-link:hover::after { opacity: 1; }

/* ── Submenu accordion (expanded sidebar) ────────────────────────────── */
.ca-nav-submenu {
    list-style: none;
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s ease;
    background: transparent;
}
/*
 * Use a large max-height so nested open submenus never get clipped.
 * Each level of nesting adds content height; 9999px covers any real-world depth.
 * The transition still feels natural because the actual content is short.
 */
.ca-nav-item.has-submenu.open > .ca-nav-submenu { max-height: 9999px; }

/* Depth-based indent for nested items */
.ca-nav-subitem--depth-1 .ca-nav-link { padding-left: 46px; font-size: .85rem; }
.ca-nav-subitem--depth-2 .ca-nav-link { padding-left: 62px; font-size: .82rem; }
.ca-nav-subitem--depth-3 .ca-nav-link { padding-left: 78px; font-size: .8rem; }


/* ── Flyout mode (collapsed sidebar) ────────────────────────────────── */
.ca-sidebar-collapsed .ca-nav-item.has-submenu {
    position: relative;
}

/* In collapsed mode the submenu <ul> itself becomes the flyout panel */
.ca-sidebar-collapsed .ca-nav-item.has-submenu > .ca-nav-submenu {
    display: block;
    position: absolute;
    left: var(--ca-sidebar-collapsed-width);
    top: 0;
    min-width: 200px;
    max-height: none;
    overflow: visible;
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: 0 var(--ca-radius) var(--ca-radius) 0;
    box-shadow: var(--ca-shadow);
    z-index: var(--ca-z-dropdown);
    opacity: 0;
    pointer-events: none;
    transform: translateX(-6px);
    transition: opacity .18s ease, transform .18s ease;
    padding: 4px 0;
}

.ca-sidebar-collapsed .ca-nav-item.has-submenu:hover > .ca-nav-submenu {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}

.ca-sidebar-collapsed .ca-nav-subitem .ca-nav-link {
    padding: 7px 14px;
    font-size: .85rem;
    white-space: nowrap;
    padding-left: 14px; /* override depth indent inside flyout */
}

.ca-sidebar-collapsed .ca-nav-dot { display: none; }

/* Section headings */
.ca-nav-heading {
    display: block;
    padding: 16px 16px 4px;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ca-text-muted);
    opacity: .6;
    white-space: nowrap;
    overflow: hidden;
    transition: opacity var(--ca-transition);
}
.ca-nav-item--heading { pointer-events: none; }
.ca-sidebar-collapsed .ca-nav-heading { opacity: 0; height: 0; padding: 0; overflow: hidden; }

/* Fallback menu admin hint */
.ca-nav-fallback-hint {
    padding: 8px 16px 12px;
    font-size: .75rem;
    color: var(--ca-text-muted);
    line-height: 1.4;
}
.ca-nav-fallback-hint a { color: var(--ca-primary); }
.ca-sidebar-collapsed .ca-nav-fallback-hint { display: none; }

/* Sidebar widgets */
.ca-sidebar-widgets {
    padding: 12px;
    border-top: 1px solid var(--ca-sidebar-border);
    margin-top: auto;
}
.ca-widget-title {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--ca-text-muted);
    margin-bottom: 8px;
}

/* ── Navbar ──────────────────────────────────────────────────────────── */
.ca-navbar {
    position: sticky;
    top: 0;
    height: var(--ca-navbar-height);
    background: var(--ca-navbar-bg);
    border-bottom: 1px solid var(--ca-navbar-border);
    display: flex;
    align-items: center;
    padding: 0 20px;
    gap: 12px;
    z-index: var(--ca-z-navbar);
    transition: background var(--ca-transition), border-color var(--ca-transition);
}

.ca-navbar-fixed .ca-navbar { position: sticky; }

.ca-navbar-left {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.ca-navbar-right {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ca-navbar-toggle {
    background: none;
    border: none;
    color: var(--ca-navbar-icon);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 6px 8px;
    border-radius: var(--ca-radius);
    transition: background .2s, color .2s;
}
.ca-navbar-toggle:hover {
    background: var(--ca-navbar-hover);
    color: var(--ca-text);
}

.ca-navbar-icon-btn {
    background: none;
    border: none;
    color: var(--ca-navbar-icon);
    font-size: 1.05rem;
    cursor: pointer;
    padding: 7px;
    border-radius: var(--ca-radius);
    display: flex;
    align-items: center;
    transition: background .2s, color .2s;
    text-decoration: none;
}
.ca-navbar-icon-btn:hover {
    background: var(--ca-navbar-hover);
    color: var(--ca-text);
}

/* Topbar nav */
.ca-topbar-nav { list-style: none; display: flex; gap: 4px; }
.ca-topbar-nav a {
    padding: 5px 10px;
    border-radius: var(--ca-radius);
    font-size: .85rem;
    color: var(--ca-navbar-text);
    transition: background .2s, color .2s;
}
.ca-topbar-nav a:hover {
    background: var(--ca-navbar-hover);
    color: var(--ca-text);
}

/* ── Breadcrumb ──────────────────────────────────────────────────────── */
.ca-breadcrumb {}
.ca-breadcrumb-list {
    display: flex;
    align-items: center;
    gap: 6px;
    list-style: none;
    font-size: .8rem;
}
.ca-breadcrumb-item { color: var(--ca-text-muted); }
.ca-breadcrumb-item a { color: var(--ca-text-muted); }
.ca-breadcrumb-item a:hover { color: var(--ca-primary); }
.ca-breadcrumb-item + .ca-breadcrumb-item::before { content: '/'; margin-right: 6px; opacity: .5; }
.ca-breadcrumb-current { color: var(--ca-text); }

/* ── Color Scheme Switcher ───────────────────────────────────────────── */
.ca-scheme-switcher { position: relative; }

.ca-scheme-btn {
    background: none;
    border: none;
    color: var(--ca-navbar-icon);
    font-size: 1.05rem;
    cursor: pointer;
    padding: 7px;
    border-radius: var(--ca-radius);
    display: flex;
    align-items: center;
    transition: background .2s, color .2s;
}
.ca-scheme-btn:hover, .ca-scheme-btn[aria-expanded="true"] {
    background: var(--ca-navbar-hover);
    color: var(--ca-primary);
}

.ca-scheme-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius-lg);
    box-shadow: var(--ca-shadow-lg);
    min-width: 200px;
    padding: 8px;
    z-index: var(--ca-z-dropdown);
    display: none;
    animation: caFadeDown .15s ease;
}
.ca-scheme-dropdown.open { display: block; }

.ca-scheme-label {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--ca-text-muted);
    padding: 4px 8px 8px;
}

.ca-scheme-option {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    background: none;
    border: none;
    border-radius: var(--ca-radius);
    cursor: pointer;
    color: var(--ca-text);
    font-size: .875rem;
    transition: background .15s;
    text-align: left;
}
.ca-scheme-option:hover { background: var(--ca-surface-2); }
.ca-scheme-option.active { color: var(--ca-primary); font-weight: 500; }

/* Swatches */
.ca-scheme-swatch {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid var(--ca-border);
    flex-shrink: 0;
}
.ca-swatch-neutral  { background: linear-gradient(135deg, #4e73df 50%, #f0f2f5 50%); }
.ca-swatch-dark     { background: linear-gradient(135deg, #6c8fff 50%, #0f172a 50%); }
.ca-swatch-neo      { background: linear-gradient(135deg, #00ff41 50%, #050505 50%); }
.ca-swatch-dracula  { background: linear-gradient(135deg, #bd93f9 50%, #282a36 50%); }
.ca-swatch-monokai  { background: linear-gradient(135deg, #a6e22e 50%, #272822 50%); }
.ca-swatch-nord     { background: linear-gradient(135deg, #88c0d0 50%, #2e3440 50%); }
.ca-swatch-solarized{ background: linear-gradient(135deg, #268bd2 50%, #002b36 50%); }

/* ── User Menu ───────────────────────────────────────────────────────── */
.ca-user-menu { position: relative; }

.ca-user-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px 10px;
    border-radius: var(--ca-radius);
    color: var(--ca-navbar-text);
    font-size: .85rem;
    transition: background .2s, color .2s;
}
.ca-user-btn:hover { background: var(--ca-navbar-hover); color: var(--ca-text); }
.ca-user-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.ca-user-name { font-weight: 500; }

.ca-user-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius-lg);
    box-shadow: var(--ca-shadow-lg);
    min-width: 180px;
    padding: 6px;
    z-index: var(--ca-z-dropdown);
    display: none;
    animation: caFadeDown .15s ease;
}
.ca-user-dropdown.open { display: block; }

.ca-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: var(--ca-radius);
    color: var(--ca-text);
    font-size: .875rem;
    transition: background .15s, color .15s;
}
.ca-dropdown-item:hover { background: var(--ca-surface-2); color: var(--ca-primary); }
.ca-dropdown-divider { height: 1px; background: var(--ca-border); margin: 4px 0; }

/* ── Search Overlay ──────────────────────────────────────────────────── */
.ca-search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    backdrop-filter: blur(4px);
    z-index: var(--ca-z-search);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 80px;
    animation: caFadeIn .15s ease;
}
.ca-search-overlay[hidden] { display: none; }

.ca-search-box {
    background: var(--ca-surface);
    border-radius: var(--ca-radius-lg);
    box-shadow: var(--ca-shadow-lg);
    padding: 20px;
    width: 100%;
    max-width: 560px;
    position: relative;
    border: 1px solid var(--ca-border);
}

.ca-search-close {
    position: absolute;
    top: 12px;
    right: 12px;
    background: none;
    border: none;
    color: var(--ca-text-muted);
    font-size: 1rem;
    cursor: pointer;
    padding: 4px;
    border-radius: 4px;
    transition: color .2s;
}
.ca-search-close:hover { color: var(--ca-text); }

/* WP search form */
.search-form { display: flex; gap: 8px; }
.search-form label { flex: 1; }
.search-form .search-field {
    width: 100%;
    padding: 10px 14px;
    background: var(--ca-input-bg);
    border: 1px solid var(--ca-input-border);
    border-radius: var(--ca-radius);
    color: var(--ca-input-text);
    font-size: .9rem;
    font-family: var(--ca-font);
    transition: border-color .2s, box-shadow .2s;
}
.search-form .search-field:focus {
    outline: none;
    border-color: var(--ca-primary);
    box-shadow: 0 0 0 3px var(--ca-input-focus);
}
.search-form .search-submit {
    padding: 10px 18px;
    background: var(--ca-primary);
    color: #fff;
    border: none;
    border-radius: var(--ca-radius);
    cursor: pointer;
    font-size: .875rem;
    font-weight: 500;
    transition: background .2s;
}
.search-form .search-submit:hover { background: var(--ca-primary-hover); }

/* ── Mobile Overlay ──────────────────────────────────────────────────── */
.ca-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    z-index: calc(var(--ca-z-sidebar) - 1);
    backdrop-filter: blur(2px);
}
.ca-overlay.active { display: block; animation: caFadeIn .2s ease; }

/* ── Main Content ────────────────────────────────────────────────────── */
.ca-main {
    flex: 1;
    padding: 24px;
    min-width: 0;
}

/* ── Content Container ───────────────────────────────────────────────── */
.ca-content {
    background: var(--ca-surface);
    border-radius: var(--ca-radius-lg);
    border: 1px solid var(--ca-border);
    padding: 28px;
    transition: background var(--ca-transition), border-color var(--ca-transition);
}

.ca-content-header {
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--ca-border);
}

.ca-content-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--ca-text);
    line-height: 1.3;
}

.ca-content-subtitle {
    font-size: .875rem;
    color: var(--ca-text-muted);
    margin-top: 4px;
}

/* ── Cards ───────────────────────────────────────────────────────────── */
.ca-card {
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius-lg);
    overflow: hidden;
    transition: background var(--ca-transition), border-color var(--ca-transition), box-shadow .2s;
}
.ca-card:hover { box-shadow: var(--ca-shadow); }

.ca-card-header {
    padding: 14px 20px;
    border-bottom: 1px solid var(--ca-border);
    font-weight: 600;
    font-size: .9rem;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--ca-surface-2);
}

.ca-card-body { padding: 20px; }
.ca-card-footer {
    padding: 12px 20px;
    border-top: 1px solid var(--ca-border);
    background: var(--ca-surface-2);
    font-size: .85rem;
    color: var(--ca-text-muted);
}

/* Stat card */
.ca-stat-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius-lg);
    border-left: 4px solid var(--ca-primary);
    transition: box-shadow .2s;
}
.ca-stat-card:hover { box-shadow: var(--ca-shadow); }
.ca-stat-icon {
    width: 52px;
    height: 52px;
    background: rgba(var(--ca-primary-rgb), .12);
    color: var(--ca-primary);
    border-radius: var(--ca-radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
}
.ca-stat-value { font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.ca-stat-label { font-size: .8rem; color: var(--ca-text-muted); margin-top: 2px; }

/* ── Grid helpers ────────────────────────────────────────────────────── */
.ca-grid { display: grid; gap: 20px; }
.ca-grid-2 { grid-template-columns: repeat(2, 1fr); }
.ca-grid-3 { grid-template-columns: repeat(3, 1fr); }
.ca-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* ── Post Styles ─────────────────────────────────────────────────────── */
.ca-post {
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius-lg);
    overflow: hidden;
    margin-bottom: 24px;
    transition: background var(--ca-transition), border-color var(--ca-transition);
}

.ca-post-header { padding: 24px 28px 0; }
.ca-post-title { font-size: 1.5rem; font-weight: 700; line-height: 1.3; margin-bottom: 8px; }
.ca-post-title a { color: var(--ca-text); }
.ca-post-title a:hover { color: var(--ca-primary); }

.ca-post-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    font-size: .8rem;
    color: var(--ca-text-muted);
    margin-bottom: 16px;
}
.ca-post-meta a { color: var(--ca-text-muted); }
.ca-post-meta a:hover { color: var(--ca-primary); }
.ca-post-meta i { margin-right: 3px; }

.ca-post-thumbnail { width: 100%; max-height: 380px; object-fit: cover; }

.ca-post-content { padding: 24px 28px; }
.ca-post-content p { margin-bottom: 1.2em; }
.ca-post-content h1,.ca-post-content h2,.ca-post-content h3,
.ca-post-content h4,.ca-post-content h5,.ca-post-content h6 {
    margin: 1.5em 0 .6em;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ca-text);
}
.ca-post-content ul, .ca-post-content ol { padding-left: 1.5em; margin-bottom: 1em; }
.ca-post-content li { margin-bottom: .4em; }
.ca-post-content blockquote {
    border-left: 4px solid var(--ca-primary);
    margin: 1.5em 0;
    padding: 12px 20px;
    background: var(--ca-surface-2);
    border-radius: 0 var(--ca-radius) var(--ca-radius) 0;
    color: var(--ca-text-muted);
    font-style: italic;
}
.ca-post-content code {
    font-family: var(--ca-font-mono);
    background: var(--ca-surface-2);
    border: 1px solid var(--ca-border);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: .85em;
}
.ca-post-content pre {
    background: var(--ca-surface-2);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius);
    padding: 16px;
    overflow-x: auto;
    margin-bottom: 1em;
}
.ca-post-content pre code { background: none; border: none; padding: 0; }
.ca-post-content table { width: 100%; border-collapse: collapse; margin-bottom: 1em; }
.ca-post-content th, .ca-post-content td { padding: 10px 14px; border: 1px solid var(--ca-border); }
.ca-post-content th { background: var(--ca-surface-2); font-weight: 600; }
.ca-post-content img { border-radius: var(--ca-radius); }

.ca-post-footer {
    padding: 14px 28px;
    border-top: 1px solid var(--ca-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    background: var(--ca-surface-2);
    font-size: .85rem;
}

.ca-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    background: rgba(var(--ca-primary-rgb), .1);
    color: var(--ca-primary);
    border-radius: 20px;
    font-size: .78rem;
    font-weight: 500;
    transition: background .2s;
}
.ca-tag:hover { background: rgba(var(--ca-primary-rgb), .2); }

/* ── Pagination ──────────────────────────────────────────────────────── */
.ca-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin: 24px 0;
    flex-wrap: wrap;
}
.ca-pagination a, .ca-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: var(--ca-radius);
    font-size: .875rem;
    border: 1px solid var(--ca-border);
    color: var(--ca-text-muted);
    transition: all .2s;
    background: var(--ca-surface);
}
.ca-pagination a:hover { background: var(--ca-primary); color: #fff; border-color: var(--ca-primary); }
.ca-pagination .current { background: var(--ca-primary); color: #fff; border-color: var(--ca-primary); font-weight: 600; }

/* ── Footer ──────────────────────────────────────────────────────────── */
.ca-footer {
    background: var(--ca-footer-bg);
    border-top: 1px solid var(--ca-footer-border);
    transition: background var(--ca-transition), border-color var(--ca-transition);
}

.ca-footer-widgets {
    padding: 40px 24px;
    border-bottom: 1px solid var(--ca-footer-border);
}

.ca-footer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }

/* ── Front-page welcome ──────────────────────────────────────────────── */
.ca-front-welcome {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - var(--ca-navbar-height) - 80px);
}
.ca-front-welcome-inner {
    text-align: center;
    padding: 40px 24px;
}
.ca-front-logo {
    font-size: 3rem;
    color: var(--ca-primary);
    display: block;
    margin-bottom: 20px;
}
.ca-front-title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--ca-text);
    margin: 0 0 10px;
}
.ca-front-desc {
    font-size: 1rem;
    color: var(--ca-text-muted);
    margin: 0;
}

.ca-footer-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px 24px;
    font-size: .82rem;
    color: var(--ca-footer-text);
}

.ca-footer-copy a { color: var(--ca-footer-text); }
.ca-footer-copy a:hover { color: var(--ca-primary); }

.ca-footer-nav { display: flex; list-style: none; gap: 16px; flex-wrap: wrap; }
.ca-footer-nav a { color: var(--ca-footer-text); font-size: .82rem; }
.ca-footer-nav a:hover { color: var(--ca-primary); }

.ca-footer-version { font-size: .75rem; opacity: .5; }

/* ── Badges & Labels ─────────────────────────────────────────────────── */
.ca-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .03em;
}
.ca-badge-primary { background: rgba(var(--ca-primary-rgb),.15); color: var(--ca-primary); }
.ca-badge-success { background: rgba(28,200,138,.15); color: #1cc88a; }
.ca-badge-warning { background: rgba(246,194,62,.15); color: #f6c23e; }
.ca-badge-danger  { background: rgba(231,74,59,.15); color: #e74a3b; }

/* ── Buttons ─────────────────────────────────────────────────────────── */
.ca-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border-radius: var(--ca-radius);
    font-size: .875rem;
    font-weight: 500;
    font-family: var(--ca-font);
    cursor: pointer;
    border: 1px solid transparent;
    transition: all .2s;
    text-decoration: none;
}
.ca-btn-primary { background: var(--ca-primary); color: #fff; }
.ca-btn-primary:hover { background: var(--ca-primary-hover); color: #fff; }
.ca-btn-outline {
    background: transparent;
    color: var(--ca-primary);
    border-color: var(--ca-primary);
}
.ca-btn-outline:hover { background: var(--ca-primary); color: #fff; }
.ca-btn-ghost { background: transparent; color: var(--ca-text-muted); }
.ca-btn-ghost:hover { background: var(--ca-surface-2); color: var(--ca-text); }
.ca-btn-sm { padding: 5px 12px; font-size: .8rem; }

/* ── Alerts ──────────────────────────────────────────────────────────── */
.ca-alert {
    padding: 14px 18px;
    border-radius: var(--ca-radius);
    border-left: 4px solid;
    font-size: .875rem;
    margin-bottom: 16px;
}
.ca-alert-info    { background: rgba(54,185,204,.1); border-color: #36b9cc; color: var(--ca-text); }
.ca-alert-success { background: rgba(28,200,138,.1); border-color: #1cc88a; color: var(--ca-text); }
.ca-alert-warning { background: rgba(246,194,62,.1); border-color: #f6c23e; color: var(--ca-text); }
.ca-alert-danger  { background: rgba(231,74,59,.1); border-color: #e74a3b; color: var(--ca-text); }

/* ── Animations ──────────────────────────────────────────────────────── */
@keyframes caFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes caFadeDown {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes caSlideIn {
    from { transform: translateX(-100%); }
    to   { transform: translateX(0); }
}

/* ── Neo Glow Effects ────────────────────────────────────────────────── */
.ca-scheme-neo .ca-sidebar-brand {
    border-bottom: 1px solid #00ff4130;
    box-shadow: 0 0 20px #00ff4115;
}
.ca-scheme-neo .ca-nav-item.active > .ca-nav-link {
    text-shadow: 0 0 8px currentColor;
}
.ca-scheme-neo .ca-navbar {
    box-shadow: 0 1px 0 #00ff4120, 0 2px 20px #00ff4108;
}
.ca-scheme-neo .ca-stat-card {
    box-shadow: 0 0 0 1px #00ff4120;
}
.ca-scheme-neo .ca-stat-card:hover {
    box-shadow: 0 0 16px #00ff4130;
}
.ca-scheme-neo a { text-shadow: none; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .ca-grid-4 { grid-template-columns: repeat(2, 1fr); }
    .ca-grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .ca-sidebar {
        transform: translateX(-100%);
        transition: transform var(--ca-transition);
        width: var(--ca-sidebar-width) !important;
    }
    .ca-sidebar.open {
        transform: translateX(0);
        box-shadow: var(--ca-shadow-lg);
    }

    .ca-page-wrapper { margin-left: 0 !important; }
    .ca-sidebar-toggle { display: flex; }

    .ca-grid-2, .ca-grid-3, .ca-grid-4 { grid-template-columns: 1fr; }
    .ca-footer-grid { grid-template-columns: 1fr; gap: 24px; }

    .ca-user-name { display: none; }
    .ca-main { padding: 16px; }
    .ca-content { padding: 18px; }

    .ca-footer-bar { flex-direction: column; text-align: center; }
    .ca-footer-nav { justify-content: center; }

    .ca-post-header { padding: 16px 18px 0; }
    .ca-post-content { padding: 16px 18px; }
    .ca-post-footer { padding: 12px 18px; }
}

@media (max-width: 480px) {
    .ca-navbar { padding: 0 12px; gap: 8px; }
    .ca-breadcrumb { display: none; }
}

/* ── WP Core Alignments ──────────────────────────────────────────────── */
.alignleft  { float: left; margin: 0 20px 16px 0; }
.alignright { float: right; margin: 0 0 16px 20px; }
.aligncenter { display: block; margin: 0 auto 16px; }
.alignwide  { margin-left: -28px; margin-right: -28px; }
.alignfull  { margin-left: calc(-28px - 1px); margin-right: calc(-28px - 1px); border-radius: 0; }

/* ── WP Comments ─────────────────────────────────────────────────────── */
.ca-comments { margin-top: 32px; }
.ca-comments-title { font-size: 1.1rem; font-weight: 700; margin-bottom: 20px; }
.comment-list { list-style: none; }
.comment {
    padding: 16px 0;
    border-bottom: 1px solid var(--ca-border);
}
.comment-author img { border-radius: 50%; margin-right: 12px; }
.comment-body { padding-left: 52px; }
.comment-meta { font-size: .8rem; color: var(--ca-text-muted); margin-bottom: 8px; }
.comment-content p { margin-bottom: .6em; font-size: .9rem; }
.comment-reply-link {
    font-size: .8rem;
    color: var(--ca-primary);
    font-weight: 500;
}

/* ── Print ───────────────────────────────────────────────────────────── */
@media print {
    .ca-sidebar, .ca-navbar, .ca-footer { display: none; }
    .ca-page-wrapper { margin-left: 0; }
    .ca-main { padding: 0; }
}

/* ── Freemium — Feature Lock & Upgrade UI ────────────────────────────── */
.ca-feature-lock {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    background: var(--ca-surface-2);
    border: 1px dashed var(--ca-border);
    border-radius: var(--ca-radius-lg);
    margin-bottom: 16px;
}
.ca-feature-lock-icon {
    width: 38px;
    height: 38px;
    background: rgba(246, 194, 62, .12);
    color: #e0a800;
    border-radius: var(--ca-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}
.ca-feature-lock-body { flex: 1; }
.ca-feature-lock-body strong { display: block; font-size: .875rem; margin-bottom: 2px; }
.ca-feature-lock-body p { font-size: .8rem; color: var(--ca-text-muted); margin: 0; }

.ca-btn-warning { background: #f6c23e; color: #2d3748 !important; border-color: #f6c23e; font-weight: 600; }
.ca-btn-warning:hover { background: #e0a800; border-color: #e0a800; color: #2d3748 !important; }

/* Locked scheme option in dropdown */
.ca-scheme-option--locked { opacity: .55; cursor: not-allowed !important; }
.ca-scheme-option--locked::after {
    content: '⭐';
    margin-left: auto;
    font-size: .75rem;
}

/* Upgrade toast */
#caUpgradeToast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    background: #2d3748;
    color: #fff;
    padding: 14px 18px;
    border-radius: var(--ca-radius-lg);
    box-shadow: var(--ca-shadow-lg);
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: .875rem;
    animation: caFadeDown .2s ease;
    max-width: 340px;
}
#caUpgradeToast a { color: #f6c23e; font-weight: 600; }
#caUpgradeToast button {
    background: none;
    border: none;
    color: rgba(255,255,255,.6);
    cursor: pointer;
    font-size: 1.1rem;
    padding: 0;
    line-height: 1;
    margin-left: auto;
    flex-shrink: 0;
}
#caUpgradeToast button:hover { color: #fff; }

/* Admin license info layout */
.ca-license-info { display: flex; flex-direction: column; gap: 10px; }
.ca-license-info-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--ca-border);
    font-size: .875rem;
}
.ca-license-info-row:last-child { border-bottom: none; }
.ca-license-info-row span { color: var(--ca-text-muted); }

/* ==========================================================================
   Login Page
   ========================================================================== */

body.ca-login-page {
    min-height: 100vh;
    display: flex;
    align-items: stretch;
    background: var(--ca-bg);
    font-family: var(--ca-font);
    font-size: var(--ca-font-size);
    color: var(--ca-text);
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* ── Two-column shell ── */
.ca-login-wrap {
    display: flex;
    width: 100%;
    min-height: 100vh;
}

/* ── Left decorative panel ── */
.ca-login-panel {
    flex: 0 0 42%;
    background: var(--ca-brand-bg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 48px;
    position: relative;
    overflow: hidden;
}

/* Decorative circles */
.ca-login-panel::before,
.ca-login-panel::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    opacity: .08;
    background: var(--ca-brand-text);
}
.ca-login-panel::before {
    width: 480px; height: 480px;
    top: -160px; right: -140px;
}
.ca-login-panel::after {
    width: 320px; height: 320px;
    bottom: -100px; left: -100px;
}

.ca-login-panel-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 340px;
}

.ca-login-panel-icon {
    font-size: 3.5rem;
    color: var(--ca-brand-text);
    opacity: .9;
    margin-bottom: 28px;
    display: block;
    line-height: 1;
}

.ca-login-panel-title {
    font-size: 1.625rem;
    font-weight: 700;
    color: var(--ca-brand-text);
    margin: 0 0 12px;
    line-height: 1.25;
}

.ca-login-panel-desc {
    font-size: .9rem;
    color: var(--ca-brand-text);
    opacity: .7;
    margin: 0;
    line-height: 1.6;
}

/* ── Right form panel ── */
.ca-login-form-panel {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 32px;
    background: var(--ca-bg);
    overflow-y: auto;
}

.ca-login-card {
    width: 100%;
    max-width: 400px;
}

/* Brand row */
.ca-login-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 32px;
}
.ca-login-brand img { max-height: 36px; width: auto; }
.ca-login-brand-icon {
    width: 36px; height: 36px;
    background: var(--ca-primary);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; color: #fff; flex-shrink: 0;
}
.ca-login-brand-name { font-size: 1.125rem; font-weight: 700; color: var(--ca-text); }

/* Divider line */
.ca-login-divider {
    width: 40px; height: 3px;
    background: var(--ca-primary);
    border-radius: 2px;
    margin-bottom: 20px;
}

/* Headings */
.ca-login-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ca-text);
    margin: 0 0 6px;
    line-height: 1.2;
}
.ca-login-subtitle {
    font-size: .875rem;
    color: var(--ca-text-muted);
    margin: 0 0 28px;
}

/* Error alert */
.ca-login-error {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: rgba(231,74,59,.08);
    border-left: 3px solid var(--ca-danger, #e74a3b);
    color: var(--ca-danger, #e74a3b);
    border-radius: 0 var(--ca-radius) var(--ca-radius) 0;
    padding: 11px 14px;
    font-size: .875rem;
    margin-bottom: 22px;
}
.ca-login-error i { flex-shrink: 0; margin-top: 1px; }

/* Form groups */
.ca-form-group { margin-bottom: 20px; }
.ca-form-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--ca-text);
    margin-bottom: 7px;
    letter-spacing: .01em;
}

.ca-form-control {
    display: block;
    width: 100%;
    padding: 10px 12px;
    font-size: .875rem;
    font-family: var(--ca-font);
    color: var(--ca-input-text, var(--ca-text));
    background: var(--ca-input-bg, var(--ca-surface));
    border: 1.5px solid var(--ca-input-border, var(--ca-border));
    border-radius: var(--ca-radius);
    outline: none;
    transition: border-color var(--ca-transition), box-shadow var(--ca-transition), background var(--ca-transition);
    box-sizing: border-box;
    -webkit-appearance: none;
}
.ca-form-control::placeholder { color: var(--ca-text-muted); opacity: .7; }
.ca-form-control:focus {
    border-color: var(--ca-primary);
    background: var(--ca-surface);
    box-shadow: 0 0 0 3px rgba(var(--ca-primary-rgb, 78,115,223), .15);
}
.ca-form-control--icon { padding-left: 40px; padding-right: 40px; }

/* Icon wrap */
.ca-input-icon-wrap { position: relative; }
.ca-input-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ca-text-muted);
    font-size: .9rem;
    pointer-events: none;
    transition: color var(--ca-transition);
}
.ca-input-icon-wrap:focus-within .ca-input-icon { color: var(--ca-primary); }

.ca-pass-toggle {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--ca-text-muted);
    font-size: .9rem;
    padding: 4px 5px;
    line-height: 1;
    border-radius: 4px;
    transition: color var(--ca-transition), background var(--ca-transition);
}
.ca-pass-toggle:hover { color: var(--ca-primary); background: rgba(var(--ca-primary-rgb,78,115,223),.08); }

/* Options row */
.ca-login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    font-size: .8125rem;
}
.ca-login-remember {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--ca-text-muted);
    cursor: pointer;
    user-select: none;
}
.ca-login-remember input[type="checkbox"] {
    width: 15px; height: 15px;
    accent-color: var(--ca-primary);
    cursor: pointer;
}
.ca-login-forgot {
    color: var(--ca-primary);
    text-decoration: none;
    font-weight: 500;
    transition: opacity var(--ca-transition);
}
.ca-login-forgot:hover { opacity: .75; text-decoration: underline; }

/* Submit button */
.ca-login-submit {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: .9375rem;
    font-weight: 600;
    padding: 11px 20px;
    letter-spacing: .01em;
    border-radius: var(--ca-radius);
    cursor: pointer;
    transition: background var(--ca-transition), transform .1s ease, box-shadow var(--ca-transition);
}
.ca-login-submit:hover  { box-shadow: 0 4px 14px rgba(var(--ca-primary-rgb,78,115,223),.35); }
.ca-login-submit:active { transform: translateY(1px); }

/* Site footer note */
.ca-login-footer {
    margin-top: 28px;
    text-align: center;
    font-size: .8rem;
    color: var(--ca-text-muted);
}
.ca-login-footer a {
    color: var(--ca-primary);
    text-decoration: none;
}
.ca-login-footer a:hover { text-decoration: underline; }

/* ── Responsive ── */
@media (max-width: 860px) {
    .ca-login-panel { display: none; }
    .ca-login-form-panel { padding: 40px 20px; }
    .ca-login-card { max-width: 420px; }
}
@media (max-width: 480px) {
    .ca-login-form-panel { padding: 32px 16px; align-items: flex-start; padding-top: 48px; }
}

/* ==========================================================================
   Profile Page
   ========================================================================== */

/* Content header */
.ca-content-header { margin-bottom: 28px; }
.ca-content-title {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--ca-text);
    margin: 0 0 4px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.ca-content-title i { color: var(--ca-primary); font-size: 1.2rem; }
.ca-content-subtitle { font-size: .875rem; color: var(--ca-text-muted); margin: 0; }

/* Notice banner */
.ca-profile-notice {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-radius: var(--ca-radius);
    font-size: .875rem;
    font-weight: 500;
    margin-bottom: 24px;
    border-left: 3px solid transparent;
}
.ca-profile-notice--success {
    background: rgba(28,200,138,.1);
    border-left-color: var(--ca-accent, #1cc88a);
    color: var(--ca-accent, #1cc88a);
}
.ca-profile-notice--error {
    background: rgba(231,74,59,.08);
    border-left-color: var(--ca-danger, #e74a3b);
    color: var(--ca-danger, #e74a3b);
}

/* Two-column layout */
.ca-profile-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 24px;
    align-items: start;
}

/* ── Aside ── */
.ca-profile-aside { display: flex; flex-direction: column; gap: 16px; }

.ca-profile-avatar-card {
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius-lg);
    padding: 28px 20px 24px;
    text-align: center;
    box-shadow: var(--ca-shadow-sm);
}
.ca-profile-avatar-wrap {
    position: relative;
    display: inline-block;
    margin-bottom: 16px;
}
.ca-profile-avatar {
    width: 88px !important;
    height: 88px !important;
    border-radius: 50%;
    border: 3px solid var(--ca-border);
    display: block;
}
.ca-profile-avatar-badge {
    position: absolute;
    bottom: 2px; right: 2px;
    width: 24px; height: 24px;
    background: var(--ca-primary);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    border: 2px solid var(--ca-surface);
    color: #fff;
    font-size: .65rem;
    cursor: default;
}
.ca-profile-meta { display: flex; flex-direction: column; gap: 3px; }
.ca-profile-display-name { font-size: 1rem; font-weight: 700; color: var(--ca-text); }
.ca-profile-login { font-size: .8125rem; color: var(--ca-text-muted); }
.ca-profile-role {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 10px;
    background: rgba(var(--ca-primary-rgb,78,115,223),.12);
    color: var(--ca-primary);
    border-radius: 20px;
    font-size: .75rem;
    font-weight: 600;
    text-transform: capitalize;
}

.ca-profile-stat-list {
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius-lg);
    padding: 0;
    margin: 0;
    list-style: none;
    overflow: hidden;
    box-shadow: var(--ca-shadow-sm);
}
.ca-profile-stat-list li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--ca-border);
}
.ca-profile-stat-list li:last-child { border-bottom: none; }
.ca-profile-stat-label {
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ca-text-muted);
    display: flex;
    align-items: center;
    gap: 5px;
}
.ca-profile-stat-value {
    font-size: .875rem;
    color: var(--ca-text);
    word-break: break-all;
}
.ca-profile-stat-value a { color: var(--ca-primary); text-decoration: none; }
.ca-profile-stat-value a:hover { text-decoration: underline; }

/* ── Main form ── */
.ca-profile-main { display: flex; flex-direction: column; gap: 20px; }

.ca-card {
    background: var(--ca-surface);
    border: 1px solid var(--ca-border);
    border-radius: var(--ca-radius-lg);
    box-shadow: var(--ca-shadow-sm);
    overflow: hidden;
}
.ca-card-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--ca-border);
    background: var(--ca-surface-2);
}
.ca-card-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--ca-text);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.ca-card-title i { color: var(--ca-primary); }
.ca-card-body { padding: 24px 20px; }

/* Two-column form row */
.ca-profile-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.ca-form-textarea {
    resize: vertical;
    min-height: 100px;
    line-height: 1.55;
}

.ca-profile-hint {
    font-size: .8125rem;
    color: var(--ca-text-muted);
    margin: 0 0 18px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.ca-profile-hint::before {
    content: '\f431';
    font-family: 'bootstrap-icons';
    color: var(--ca-info, #36b9cc);
    flex-shrink: 0;
}

/* Save row */
.ca-profile-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .ca-profile-layout {
        grid-template-columns: 1fr;
    }
    .ca-profile-aside {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 600px) {
    .ca-profile-aside { grid-template-columns: 1fr; }
    .ca-profile-row   { grid-template-columns: 1fr; }
}
