/* ================================================= */
/* 1. CORE UI - FLOATING TRIGGER & PANEL             */
/* ================================================= */

/* Fixed Trigger - Bottom Left */
.light-nav-acc-btn {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 999998;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--ocm-white);
    border: 1px solid var(--ocm-gray-200);
    border-radius: 50px;
    color: var(--ocm-dark);
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: var(--ocm-shadow-lg);
    transition: all var(--transition-normal);
}

.light-nav-acc-btn:hover {
    transform: translateY(-3px);
    border-color: var(--ocm-primary);
}

.light-nav-acc-btn i {
    color: var(--ocm-primary);
    font-size: 1.2rem;
}

/* Main Panel (LTR) */
.acc-panel {
    position: fixed;
    top: 0;
    left: -420px;
    width: 380px;
    height: 100vh;
    background: var(--ocm-glass);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    box-shadow: var(--ocm-shadow-lg);
    z-index: 999999;
    display: flex;
    flex-direction: column;
    transition: all var(--transition-normal);
    border-right: 4px solid var(--ocm-primary);
    direction: ltr;
    visibility: hidden;
    opacity: 0;
    text-align: left;
}

.acc-panel.active {
    left: 0;
    visibility: visible;
    opacity: 1;
}

/* Panel Header */
.acc-header-premium {
    background: var(--ocm-darker);
    padding: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.acc-title-box .light-label {
    color: var(--ocm-accent);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 2px;
}

/* Button Styling in Grid */
.acc-group h6 {
    color: var(--ocm-gray-600);
    font-size: 0.8rem;
    margin: 20px 0 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--ocm-gray-200);
    text-transform: uppercase;
    font-weight: 700;
}

.acc-group button {
    width: 100%;
    background: var(--ocm-white);
    border: 1px solid var(--ocm-gray-200);
    padding: 14px 16px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-radius: var(--ocm-radius-sm);
    color: var(--ocm-dark);
    font-size: 0.95rem;
    font-weight: 600;
    transition: var(--transition-fast);
    cursor: pointer;
}

.acc-group button.active {
    background: var(--ocm-primary) !important;
    color: var(--ocm-white) !important;
    border-color: var(--ocm-primary) !important;
}

.acc-group button.active i { color: var(--ocm-white) !important; }

/* ================================================= */
/* 2. ACCESSIBILITY OVERRIDES (Site Impact)          */
/* ================================================= */

body[data-acc-contrast="true"] *:not(#accPanel, #accPanel *, .light-nav-acc-btn, .light-nav-acc-btn *) {
    background-color: #000000 !important;
    color: #ffff00 !important;
    border-color: #ffffff !important;
}

body[data-acc-grayscale="true"] *:not(#accPanel, #accPanel *, .light-nav-acc-btn, .light-nav-acc-btn *) {
    filter: grayscale(100%) !important;
}

body[data-acc-negative="true"] *:not(#accPanel, #accPanel *, .light-nav-acc-btn, .light-nav-acc-btn *) {
    filter: invert(1) hue-rotate(180deg) !important;
}

/* Image protection for Negative Mode */
body[data-acc-negative="true"] img, 
body[data-acc-negative="true"] video {
    filter: invert(1) hue-rotate(180deg) !important;
}

body[data-acc-big-text="true"] { font-size: 1.2rem !important; }
body[data-acc-readable="true"] *:not(#accPanel, #accPanel *) { font-family: Arial, sans-serif !important; }

body[data-acc-links="true"] a:not(#accPanel *) {
    text-decoration: underline !important;
    font-weight: 800 !important;
    background-color: #ffff00 !important;
    color: #000 !important;
}

body[data-acc-spacing="true"] *:not(#accPanel, #accPanel *) {
    letter-spacing: 0.12em !important;
    word-spacing: 0.18em !important;
    line-height: 1.8 !important;
}

body[data-acc-cursor="true"] { cursor: crosshair !important; }
body[data-acc-stop-anim="true"] * { animation: none !important; transition: none !important; }

/* Reading Guide */
.reading-guide-line {
    position: fixed;
    left: 0;
    height: 4px;
    background: var(--ocm-secondary);
    width: 100%;
    z-index: 1000000;
    display: none;
    pointer-events: none;
}

/* ================================================= */
/* 3. EXCLUSIONS - PROTECT THE PANEL UI              */
/* ================================================= */

/* Reset filters for the UI elements */
body[data-acc-negative="true"] #accPanel,
body[data-acc-grayscale="true"] #accPanel,
body[data-acc-negative="true"] .light-nav-acc-btn,
body[data-acc-grayscale="true"] .light-nav-acc-btn {
    filter: none !important;
}

/* Protect panel from High Contrast mode colors */
body[data-acc-contrast="true"] #accPanel {
    background: var(--ocm-white) !important;
}

body[data-acc-contrast="true"] #accPanel * {
    color: var(--ocm-dark) !important;
    background-color: transparent !important;
    border-color: var(--ocm-gray-200) !important;
}

/* Ensure header stays dark even in High Contrast */
body[data-acc-contrast="true"] .acc-header-premium,
body[data-acc-contrast="true"] .acc-header-premium * {
    background-color: var(--ocm-darker) !important;
    color: var(--ocm-white) !important;
}

/* Panel should never have extra spacing or custom fonts applied to it */
#accPanel, #accPanel * {
    letter-spacing: normal !important;
    word-spacing: normal !important;
    line-height: normal !important;
}

/* ================================================= */
/* 4. RESPONSIVE                                     */
/* ================================================= */

@media (max-width: 991px) {
    .acc-panel { width: 85%; left: -100%; }
    .acc-panel.active { left: 0; }
}

@media (max-width: 768px) {
    .light-nav-acc-btn { bottom: 15px; left: 15px; padding: 10px; }
    .light-nav-acc-btn span { display: none; }
}