:root {
    --cc-primary: #a97c34;
    --cc-primary-dark: #7d5a24;
    --cc-accent: #cda349;
    --cc-bg: #f3ede1;
    --cc-card: #fffdf8;
    --cc-text: #2b2318;
    --cc-border: #e2d6bd;
    --cc-sidebar-bg: #1e1811;
    --cc-sidebar-text: #ede3d0;
    --cc-font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --cc-font-sans: 'Nunito Sans', 'Segoe UI', Roboto, Arial, sans-serif;
}

[data-bs-theme="dark"] {
    --cc-bg: #16120c;
    --cc-card: #241d14;
    --cc-text: #efe6d5;
    --cc-border: #3a2f1e;
    --cc-sidebar-bg: #0f0c07;
    --cc-sidebar-text: #ede3d0;
}

:root {
    --bs-warning: 205, 163, 73;
    --bs-warning-rgb: 205, 163, 73;
}
.text-warning { color: var(--cc-accent) !important; }
.bg-warning { background-color: var(--cc-accent) !important; color: #2b2117 !important; }
.btn-warning {
    background-color: var(--cc-accent);
    border-color: var(--cc-accent);
    color: #2b2117;
}
.btn-warning:hover, .btn-warning:focus {
    background-color: var(--cc-primary-dark);
    border-color: var(--cc-primary-dark);
    color: #fff;
}

body {
    background: var(--cc-bg);
    color: var(--cc-text);
    font-family: var(--cc-font-sans);
    transition: background .3s ease, color .3s ease;
}

h1, h2, h3, h4, h5, h6, .navbar-brand, .cc-stat {
    font-family: var(--cc-font-serif);
}

.cc-nav {
    background: var(--cc-card);
    border-bottom: 1px solid var(--cc-border);
}

.cc-nav .nav-link {
    color: var(--cc-text) !important;
}
.cc-nav .nav-link:hover {
    color: var(--cc-primary) !important;
}
.cc-nav .nav-link.btn {
    color: inherit !important;
}
.cc-nav .nav-link.btn-primary {
    color: #fff !important;
}

.cc-sidebar, .offcanvas.cc-sidebar {
    background: var(--cc-sidebar-bg) !important;
    color: var(--cc-sidebar-text) !important;
}
.cc-sidebar a, .offcanvas.cc-sidebar a {
    color: var(--cc-sidebar-text) !important;
}
.cc-sidebar a:hover, .cc-sidebar a.active,
.offcanvas.cc-sidebar a:hover, .offcanvas.cc-sidebar a.active {
    background: var(--cc-primary) !important;
    color: #fff !important;
}

.cc-chat-bubble-bot {
    background: var(--cc-bg);
    color: var(--cc-text);
    border: 1px solid var(--cc-border);
}
.cc-chat-bubble-user {
    background: var(--cc-primary);
    color: #fff;
}

.cc-footer {
    background: var(--cc-sidebar-bg);
    color: var(--cc-sidebar-text);
    border-top: 1px solid var(--cc-border);
}

.cc-card {
    background: var(--cc-card);
    border: 1px solid var(--cc-border);
    border-radius: 14px;
    cursor: default;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.cc-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(30,24,17,.12);
    border-color: var(--cc-primary);
}

.btn {
    transition: transform .15s ease, box-shadow .15s ease, background-color .2s ease, border-color .2s ease;
}
.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(30,24,17,.15);
}
.btn:active {
    transform: translateY(0);
    box-shadow: none;
}

.form-control, .form-select {
    transition: border-color .2s ease, box-shadow .2s ease;
}
.form-control:focus, .form-select:focus {
    border-color: var(--cc-primary);
    box-shadow: 0 0 0 .2rem rgba(169,124,52,.18);
}

.cc-hero {
    background: linear-gradient(135deg, #2b2117 0%, #55401f 55%, #a97c34 100%);
    color: #f6efe0;
    padding: 90px 0 110px;
    border-radius: 0 0 40px 40px;
}

.btn-primary {
    background-color: var(--cc-primary);
    border-color: var(--cc-primary);
}
.btn-primary:hover, .btn-primary:focus {
    background-color: var(--cc-primary-dark);
    border-color: var(--cc-primary-dark);
}
.btn-outline-primary {
    color: var(--cc-primary);
    border-color: var(--cc-primary);
}
.btn-outline-primary:hover {
    background-color: var(--cc-primary);
    border-color: var(--cc-primary);
    color: #fff;
}
.text-primary { color: var(--cc-primary) !important; }
.bg-primary { background-color: var(--cc-primary) !important; }
.border-primary { border-color: var(--cc-primary) !important; }

.cc-logo {
    height: 34px;
    width: auto;
    object-fit: contain;
    border-radius: 50%;
}

.cc-hero .btn-warning {
    font-weight: 600;
    background-color: var(--cc-accent);
    border-color: var(--cc-accent);
    color: #2b2117;
}

.cc-stat {
    font-size: 2rem;
    font-weight: 700;
    color: var(--cc-primary);
}

.cc-sidebar {
    background: var(--cc-sidebar-bg);
    color: var(--cc-sidebar-text);
    border-right: 1px solid var(--cc-border);
    min-height: calc(100vh - 60px);
}

.cc-sidebar a {
    color: var(--cc-sidebar-text);
    display: block;
    padding: .65rem 1rem;
    border-radius: 10px;
    text-decoration: none;
    margin-bottom: 3px;
    opacity: .85;
}

.cc-sidebar a:hover, .cc-sidebar a.active {
    background: var(--cc-primary);
    color: #fff;
    opacity: 1;
}

.progress {
    background: var(--cc-border);
}

.badge-flag {
    background: #b3462c;
}

.cc-icon-circle {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(169,124,52,.14);
    color: var(--cc-primary);
    font-size: 1.4rem;
}

@media print {
    .no-print { display: none !important; }
    body { background: #fff; color: #000; }
}
