:root {
    --primary-color: #673AB7; /* Deep Purple */
    --accent-color: #CDDC39; /* Lime */
    --bg-dark: #121212;
    --bg-card: #1E1E1E;
    --text-main: #E0E0E0;
    --text-muted: #B0BEC5;
}

/* --- Base --- */
html { font-size: 100%; }
body { 
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; 
    color: var(--text-main); 
    background-color: var(--bg-dark);
}

/* --- Typography Overrides for Dark Mode --- */
h1, h2, h3, h4, h5, h6 { color: white !important; }
.text-muted { color: var(--text-muted) !important; }
.text-dark { color: white !important; } /* Invert text-dark to white for this theme */
.lead { color: var(--text-muted); }

/* --- Bootstrap Overrides --- */
.navbar { 
    background-color: rgba(30, 30, 30, 0.95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid #333;
}
.navbar-brand { color: white !important; font-weight: 700; }
.nav-link { color: rgba(255,255,255,0.7) !important; }
.nav-link:hover, .nav-link.active { color: var(--accent-color) !important; }

/* Buttons */
.btn-primary { 
    background-color: var(--primary-color); 
    border-color: var(--primary-color);
    color: white;
}
.btn-primary:hover { 
    background-color: #512DA8; 
    border-color: #512DA8;
}
.btn-outline-light {
    border-color: rgba(255,255,255,0.3);
    color: white;
}
.btn-outline-light:hover {
    background-color: rgba(255,255,255,0.1);
    border-color: white;
}

/* Cards */
.card, .feature-card {
    background-color: var(--bg-card);
    border: 1px solid #333;
    border-radius: 12px;
}
.card-header {
    background-color: rgba(255,255,255,0.05);
    border-bottom: 1px solid #333;
}

/* Tabbed UI (Features) */
.feature-tab { 
    cursor: pointer; 
    border-left: 3px solid transparent; 
    padding: 15px;
    background-color: var(--bg-card);
    margin-bottom: 10px;
    border-radius: 0 8px 8px 0;
}
.feature-tab:hover {
    background-color: #252525;
}
.feature-tab.active { 
    border-left: 3px solid var(--accent-color); 
    background-color: #2D2D2D !important;
    color: white !important; 
}
.feature-tab h5 { color: white; margin: 0; }
.feature-tab p { color: var(--text-muted); margin: 0; font-size: 0.9rem; }

/* Footer */
footer {
    background-color: #000;
    border-top: 1px solid #222;
}
.hover-text-white:hover { color: #fff !important; }

/* Docs Sidebar */
.docs-sidebar { 
    background-color: var(--bg-card);
    border-radius: 8px;
    padding: 10px 0;
}
.docs-nav-link { 
    display: block; 
    width: 100%; 
    padding: 10px 20px; 
    color: var(--text-muted); 
    text-decoration: none; 
    border-left: 3px solid transparent;
}
.docs-nav-link:hover { 
    background-color: rgba(255,255,255,0.05); 
    color: white; 
}
.docs-nav-link.active { 
    background-color: rgba(103, 58, 183, 0.2); 
    color: var(--accent-color); 
    border-left-color: var(--accent-color);
}

/* --- Protection --- */
body.content-protected { user-select: none; }

/* --- Accessibility Widget --- */
.a11y-widget { position: fixed; bottom: 30px; right: 30px; z-index: 10000; }
.a11y-btn { width: 55px; height: 55px; border-radius: 50%; background: var(--primary-color); color: white; border: 2px solid white; box-shadow: 0 4px 15px rgba(0,0,0,0.3); font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.a11y-menu { position: absolute; bottom: 75px; right: 0; width: 280px; background: #333; color: white; border-radius: 12px; display: none; padding: 15px; }
.a11y-menu:not(.hidden) { display: block; }

