/*
Theme Name: Aroma Phyto Studio
Theme URI: https://aroma-phyto-studio.com/
Description: Custom theme for the Aroma Phyto Studio
Author: Geert De Vuyst
Author URI: https://geertdevuyst.fr/
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: studio
*/

:root {
    color-scheme: light dark;

    /* Layout */
    --header-height: 50px;

    /* Base Brand Colors */
    /* Do not use these variables directly when coding styles; use the Primary and Secondary Systems instead */
    --brand-navy: #1a1a2e;
    --brand-gold: #b8941f;
    --brand-sage: #6b8a52;
    --brand-mauve: #6d5b70;
    --brand-terracotta: #a63930;
    
    /* Higher Contrast Variants */
    /* Use these variables directly when coding styles */
    --brand-navy-dark: #0d0d17;
    --brand-navy-light: #3d3d5c;

    --brand-gold-dark: #8a6e17;
    --brand-gold-light: #d4ab28;

    --brand-sage-dark: #4a5f38;
    --brand-sage-light: #8ba96e;

    --brand-mauve-dark: #4d3f50;
    --brand-mauve-light: #8f7a93;

    --brand-terracotta-dark: #7a2a23;
    --brand-terracotta-light: #c94940;

    /* Primary System */
    /* Use these variables directly when coding styles, instead of using the Base Brand Colors directly */
    --primary: var(--brand-navy);
    --primary-light: var(--brand-navy-light);
    --primary-dark: var(--brand-navy-dark);
    --primary-alpha: rgba(26, 26, 46, 0.1);

    /* Secondary System */
    /* Use these variables directly when coding styles, instead of using the Base Brand Colors directly */
    --secondary: var(--brand-gold);
    --secondary-light: var(--brand-gold-light);
    --secondary-dark: var(--brand-gold-dark);
    --secondary-alpha: rgba(184, 148, 31, 0.1);
    
    /* Semantic Colors - Reference existing values */
    /* Use these variables directly when coding styles */
    --success: var(--brand-sage);
    --success-light: var(--brand-sage-light);
    --success-dark: var(--brand-sage-dark);
    --success-alpha: rgba(107, 138, 82, 0.1);

    --warning: var(--secondary);
    --warning-light: var(--secondary-light);
    --warning-dark: var(--secondary-dark);
    --warning-alpha: var(--secondary-alpha);

    --info: var(--brand-mauve);
    --info-light: #a394a6;
    --info-dark: #7d6b80;
    --info-alpha: rgba(144, 126, 147, 0.1);

    --error: var(--brand-terracotta);
    --error-light: #c55856;
    --error-dark: var(--brand-terracotta); /* Same as base error */
    --error-alpha: rgba(185, 69, 67, 0.1);
    
    /* Neutral Grays */
    /* Use these variables directly when coding styles */
    --white: #ffffff;
    --gray-50: #fafafa;
    --gray-100: #f5f5f5;
    --gray-200: #e5e5e5;
    --gray-300: #d4d4d4;
    --gray-400: #a3a3a3;
    --gray-500: #737373;
    --gray-600: #525252;
    --gray-700: #404040;
    --gray-800: #262626;
    --gray-900: #171717;
    
    /* Link States */
    /* Use these variables directly when coding styles */
    --link-primary: var(--primary);
    --link-hover: var(--brand-terracotta);
    --link-visited: #5d1a58;
    --link-focus: var(--secondary);
    
    /* Text Hierarchy */
    /* Use these variables directly when coding styles */
    --text-primary: #2c2c48;
    --text-secondary: var(--gray-700);
    --text-tertiary: var(--gray-500);
    --text-inverse: var(--white);
    
    /* Border Hierarchy */
    /* Use these variables directly when coding styles */
    --border-light: var(--gray-300);
    --border-medium: var(--gray-400);
    --border-strong: var(--gray-500);
    
    /* Background Hierarchy */
    /* Use these variables directly when coding styles */
    --bg-primary: var(--white);
    --bg-secondary: var(--gray-50);
    --bg-tertiary: var(--gray-100);

    /* Essential Gradients */
    /* Use these variables directly when coding styles */
    --gradient-primary: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    --gradient-secondary: linear-gradient(135deg, var(--secondary) 0%, var(--secondary-dark) 100%);
    --gradient-gold: linear-gradient(135deg, var(--secondary) 0%, var(--secondary-dark) 100%);
    --gradient-terracotta: linear-gradient(135deg, var(--error) 0%, var(--error-dark) 100%);
}

/* Dark Mode - System Preference */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        /* Brighter versions for dark backgrounds */
        --brand-gold-dark: #f2c55c; /* Brighter gold for dark mode */
        --brand-sage-dark: #a8c195; /* Brighter sage for dark mode */
        --brand-mauve-dark: #b8a3bb; /* Brighter mauve for dark mode */
        --brand-terracotta-dark: #d4615f; /* Brighter terracotta for dark mode */

        /* Primary System */
        --primary: var(--brand-navy);
        --primary-light: var(--brand-navy-light);
        --primary-dark: var(--brand-navy-dark);
        --primary-alpha: rgba(26, 26, 46, 0.1);

        /* Secondary System */
        --secondary: var(--brand-gold);
        --secondary-light: var(--brand-gold-light);
        --secondary-dark: var(--brand-gold-dark);
        --secondary-alpha: rgba(184, 148, 31, 0.1);

        --link-primary: var(--primary-light);
        --link-hover: #9fb088;
        --link-visited: #a394a6;
        --link-focus: var(--secondary-light);

        --text-primary: #fcfcfc;
        --text-secondary: #d4d4d4;
        --text-tertiary: #a3a3a3;
        --text-inverse: #fcfcfc;

        --bg-primary: #1e1e1e;
        --bg-secondary: #252533;
        --bg-tertiary: #383852;

        --border-light: #3d3d5c;
        --border-medium: #525263;
        --border-strong: #6b6b7c;
    }
}

/* Dark Mode - Manual Toggle (overrides system preference) */
[data-theme="dark"] {
    /* Brighter versions for dark backgrounds */
    --brand-gold-dark: #f2c55c;
    --brand-sage-dark: #a8c195;
    --brand-mauve-dark: #b8a3bb;
    --brand-terracotta-dark: #d4615f;

    /* Primary System */
    --primary: var(--brand-navy);
    --primary-light: var(--brand-navy-light);
    --primary-dark: var(--brand-navy-dark);
    --primary-alpha: rgba(26, 26, 46, 0.1);

    /* Secondary System */
    --secondary: var(--brand-gold);
    --secondary-light: var(--brand-gold-light);
    --secondary-dark: var(--brand-gold-dark);
    --secondary-alpha: rgba(184, 148, 31, 0.1);

    --link-primary: var(--primary-light);
    --link-hover: #9fb088;
    --link-visited: #a394a6;
    --link-focus: var(--secondary-light);

    --text-primary: #fcfcfc;
    --text-secondary: #d4d4d4;
    --text-tertiary: #a3a3a3;
    --text-inverse: #fcfcfc;

    /* Background */
    --bg-primary: #1e1e1e;
    --bg-secondary: #252533;
    --bg-tertiary: #383852;

    /* Border */
    --border-light: #3d3d5c;
    --border-medium: #525263;
    --border-strong: #6b6b7c;
}

/* Light Mode - Manual Toggle (overrides system preference) */
[data-theme="light"] {
    --link-primary: var(--primary);
    --link-hover: var(--brand-terracotta);
    --link-visited: #5d1a58;
    --link-focus: var(--secondary);

    --text-primary: #2c2c48;
    --text-secondary: var(--gray-700);
    --text-tertiary: var(--gray-500);
    --text-inverse: var(--white);

    --bg-primary: var(--white);
    --bg-secondary: var(--gray-50);
    --bg-tertiary: var(--gray-100);

    --border-light: var(--gray-300);
    --border-medium: var(--gray-400);
    --border-strong: var(--gray-500);
}

/* ===========================
   RETRO COLOR THEMES
   =========================== */

/* 1970s FUNK THEME */
[data-color-theme="seventies"] {
	/* Override semantic mappings */
	--primary: #D2691E; /* burnt orange */
	--primary-light: #F4A460;
	--primary-dark: #8B4513;

	--secondary: #DAA520; /* harvest gold */
	--secondary-light: #FFD700;
	--secondary-dark: #B8941F;

	/* Text on funky backgrounds */
	--text-primary: #FFF8DC;
	--text-secondary: #F4A460;
	--text-tertiary: #DAA520;

	/* Earthy backgrounds */
	--bg-primary: #3B2F2F; /* chocolate brown */
	--bg-secondary: #4a3838;
	--bg-tertiary: #446802; /* avocado green */

	--border-light: #8B4513;
	--border-medium: #A0522D;
	--border-strong: #654321;

	/* Links */
	--link-primary: #FFD700;
	--link-hover: #F4A460;
	--link-visited: #DAA520;
	--link-focus: #FFD700;

	/* Semantic colors */
	--success: #446802;
	--success-light: #7FFF7F;
	--success-dark: #4a6e02;

	--error: #8B4513;
	--error-light: #A0522D;
	--error-dark: #654321;

	--warning: #DAA520;
	--warning-light: #FFD700;
	--warning-dark: #B8941F;

	--info: #F4A460;
	--info-light: #FFA07A;
	--info-dark: #D2691E;
}

/* 1980s NEON THEME */
[data-color-theme="eighties"] {
	--primary: #00FFFF; /* electric cyan */
	--primary-light: #7FFFD4;
	--primary-dark: #008B8B;

	--secondary: #FF1493; /* hot magenta */
	--secondary-light: #FF69B4;
	--secondary-dark: #C71585;

	--text-primary: #00FFFF;
	--text-secondary: #FFFF00;
	--text-tertiary: #FF1493;
	--text-inverse: #000000;

	--bg-primary: #000000;
	--bg-secondary: #1a1a1a;
	--bg-tertiary: #0a0a0a;

	--border-light: #FF00FF;
	--border-medium: #00FFFF;
	--border-strong: #FFFF00;

	/* Links */
	--link-primary: #00FFFF;
	--link-hover: #FF1493;
	--link-visited: #FF00FF;
	--link-focus: #FFFF00;

	/* Semantic colors */
	--success: #00FF00;
	--success-light: #7FFF00;
	--success-dark: #00AA00;

	--error: #FF0000;
	--error-light: #FF6B6B;
	--error-dark: #CC0000;

	--warning: #FFFF00;
	--warning-light: #FFFF99;
	--warning-dark: #CCCC00;

	--info: #00FFFF;
	--info-light: #7FFFD4;
	--info-dark: #008B8B;
}

/* 1950s MODERNE THEME */
[data-color-theme="fifties"] {
	--primary: #FF7F50; /* coral */
	--primary-light: #FFA07A;
	--primary-dark: #FF6347;

	--secondary: #98FF98; /* mint green */
	--secondary-light: #B0FFB0;
	--secondary-dark: #7FFF7F;

	--text-primary: #2C3E50;
	--text-secondary: #7F8C8D;
	--text-tertiary: #95A5A6;

	--bg-primary: #FFFDD0; /* cream */
	--bg-secondary: #FFF8E7;
	--bg-tertiary: #B0E0E6; /* powder blue */

	--border-light: #98FF98;
	--border-medium: #87CEEB;
	--border-strong: #FF7F50;

	/* Links */
	--link-primary: #FF7F50;
	--link-hover: #FF6347;
	--link-visited: #B0E0E6;
	--link-focus: #98FF98;

	/* Semantic colors */
	--success: #98FF98;
	--success-light: #B0FFB0;
	--success-dark: #7FFF7F;

	--error: #FF6347;
	--error-light: #FFA07A;
	--error-dark: #CD5C5C;

	--warning: #FFB6C1;
	--warning-light: #FFC0CB;
	--warning-dark: #FF69B4;

	--info: #B0E0E6;
	--info-light: #ADD8E6;
	--info-dark: #87CEEB;
}

/* ===========================
   DARK MODE + COLOR THEME OVERRIDES
   =========================== */

/* Dark Mode + Seventies: Keep funkiness but ensure visibility */
[data-theme="dark"][data-color-theme="seventies"] {
	--text-primary: #FFF8DC;
	--text-secondary: #F4A460;
	--text-tertiary: #DAA520;
	--text-inverse: #FFF8DC;
}

/* Dark Mode + Eighties: Neon colors work well on dark, just ensure consistency */
[data-theme="dark"][data-color-theme="eighties"] {
	--text-primary: #00FFFF;
	--text-secondary: #FFFF00;
	--text-tertiary: #FF1493;
	--text-inverse: #00FFFF;
	--bg-primary: #000000;
	--bg-secondary: #1a1a1a;
	--bg-tertiary: #0a0a0a;
}

/* Dark Mode + Fifties: Override light-mode colors with dark-friendly versions */
[data-theme="dark"][data-color-theme="fifties"] {
	--text-primary: #FFA07A;
	--text-secondary: #B0FFB0;
	--text-tertiary: #ADD8E6;
	--text-inverse: #FFA07A;
	--bg-primary: #2C1810;
	--bg-secondary: #3a2416;
	--bg-tertiary: #1a3a3a;
}

/* FONT LOADING */

@font-face {
    font-family: 'Lato';
    src: url('fonts/Lato-regular-webfont.woff2') format('woff2'),
         url('fonts/Lato-regular-webfont.woff') format('woff');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Lato';
    src: url('fonts/Lato-bold-webfont.woff2') format('woff2'),
         url('fonts/Lato-bold-webfont.woff') format('woff');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

/* Main Styles */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	overflow-x: hidden;
	font-size: 100%; /* 16px browser default, respects user preferences */
}

html body {
	overflow-x: hidden;
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.65;
    color: var(--text-primary);
    background-color: var(--bg-primary);
    transition: background-color 0.3s ease, color 0.3s ease;

	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: 100vh;
	margin: 0 auto;
}

p {
    margin-bottom: 0.5em;
    line-height: 1.65;
    color: var(--text-primary);
    font-size: 1rem;
    text-align: left;
}

p:last-child {
    margin-bottom: 0;
}

ul,
ol {
    margin: 0 0 1.5em 0;
    padding-left: 2em;
    line-height: 1.65em;
    color: var(--text-primary);
}

ul {
    list-style-type: disc;
}

ol {
    list-style-type: decimal;
}

ul ul,
ol ul {
    list-style-type: circle;
    margin-bottom: 0;
}

ul ul ul,
ol ul ul {
    list-style-type: square;
}

ol ol,
ul ol {
    list-style-type: lower-alpha;
    margin-bottom: 0;
}

ol ol ol,
ul ol ol {
    list-style-type: lower-roman;
}

li {
    margin-bottom: 0.5em;
    line-height: 1.65em;
}

li:last-child {
    margin-bottom: 0;
}

li > ul,
li > ol {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

ul:last-child,
ol:last-child {
    margin-bottom: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    line-height: 1.3;
    text-align: center;
    margin-bottom: 0.8em;
    margin-top: 1.8rem;
    color: var(--text-primary);
    transition: none;
}

h1 {
    font-size: 2.5rem;
    color: var(--primary);
    margin-bottom: 1rem;
    margin-top: 0;
    font-family: 'Lato', sans-serif;
    font-weight: 700;
}

h2 {
   font-size: 2rem;
   color: var(--secondary);
   padding-bottom: 0.5rem;
}

h3 {
   font-size: 1.45rem;
   color: var(--brand-sage);
   text-align: left;
}

h4 {
   font-size: 1.25rem;
   color: var(--brand-mauve);
	text-align: left;
}

h5 {
   font-size: 1.25rem;
   color: var(--brand-terracotta);
	text-align: left;
}

h6 {
   font-size: 1.125rem;
   color: var(--text-secondary);
   font-weight: 600;
	text-align: left;
}

/* Dark mode support for headings */
@media (prefers-color-scheme: dark) {
   h1 {
       color: var(--primary-light);
   }

    h2 {
        color: var(--secondary-light);
    }

    h3 {
        color: var(--brand-sage-light);
    }

    h4 {
        color: var(--brand-mauve-light);
    }

    h5 {
        color: var(--brand-terracotta-light);
    }

   h6 {
       color: var(--text-secondary);
   }
}

/* Responsive heading sizes */
@media (max-width: 767px) {
   h1 {
        font-size: 2rem;
   }
   
   h2 {
       font-size: 1.75rem;
   }
   
   h3 {
       font-size: 1.5rem;
   }
   
   h4 {
       font-size: 1.25rem;
   }
   
   h5 {
       font-size: 1.125rem;
   }
   
   h6 {
       font-size: 1rem;
   }
}

@media screen {
    body h1,
    .neve_body h1,
    html body h1 {
        font-size: 2.5rem;
    }
    
    @media (max-width: 767px) {
        body h1,
        .neve_body h1,
        html body h1 {
            font-size: 2rem;
            text-align: center;
        }
    }
}

/* Link Styles - High Contrast Option */
a {
    color: var(--link-primary);
    text-decoration: underline;
    transition: color 0.2s ease-in-out;
}

a:hover {
    color: var(--link-hover);
    text-decoration: none;
}

a:visited {
}

a:focus-visible {
    color: var(--link-focus);
    outline: 2px solid var(--link-focus);
    outline-offset: 2px;
}

/* Dark Mode - Link Styles */
[data-theme="dark"] a {
	color: var(--text-inverse);
}

[data-theme="dark"] a:hover {
	color: var(--white);
}

[data-theme="dark"] a:focus {
	color: var(--text-inverse);
	outline-color: var(--text-inverse);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) a {
		color: var(--text-inverse);
	}

	:root:not([data-theme="light"]) a:hover {
		color: var(--white);
	}

	:root:not([data-theme="light"]) a:focus {
		color: var(--text-inverse);
		outline-color: var(--text-inverse);
	}

}

/* Engine Icon Links - Remove underline from icon-only links */
.apdb-engine-icon {
	text-decoration: none;
}

.apdb-engine-icon:hover {
	text-decoration: none;
}

.apdb-engine-icon:focus {
	text-decoration: none;
}

/* ===========================
   BUTTON STYLES
   =========================== */

/* Base Button */
button,
.button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0.875rem 1.5rem;
	font-size: 1rem;
	font-weight: 600;
	font-family: 'Lato', sans-serif;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	transition: all 0.3s ease;
	line-height: 1;

}

button:disabled,
.button:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;

}

button:focus-visible,
.button:focus-visible {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;

}

/* Primary Button */
.button-primary {
	background: var(--gradient-primary);
	color: var(--text-inverse);

}

.button-primary:hover:not(:disabled) {
	background: var(--primary);
	color: var(--text-inverse);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);

}

.button-primary:active:not(:disabled) {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);

}

.button-primary:focus-visible {
	outline-color: var(--primary);

}

/* Secondary Button */
.button-secondary {
	background: var(--bg-primary);
	color: var(--primary);
	border: 1px solid var(--primary);

}

.button-secondary:hover:not(:disabled) {
	background: var(--primary);
	color: var(--text-inverse);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);

}

.button-secondary:active:not(:disabled) {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);

}

/* Small Button */
.button-small {
	font-size: 0.875rem;
	padding: 0.5rem 1rem;

}

/* Dark Mode Support */
[data-theme="dark"] .button-secondary {
	background: var(--bg-secondary);
	border-color: var(--primary-light);
	color: var(--primary-light);

}

[data-theme="dark"] .button-secondary:hover:not(:disabled) {
	background: var(--primary-light);
	color: var(--bg-primary);

}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .button-secondary {
		background: var(--bg-secondary);
		border-color: var(--primary-light);
		color: var(--primary-light);

	}

	:root:not([data-theme="light"]) .button-secondary:hover:not(:disabled) {
		background: var(--primary-light);
		color: var(--bg-primary);

	}

}

/* Responsive */
@media (max-width: 767px) {
	button,
	.button {
		width: 100%;
		justify-content: center;

	}

}

/* ===========================
   FOOTER STYLES
   =========================== */

/* APS Footer Container */
.aps-footer-container {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	width: 100%;
	padding: 2.5rem 1.5rem;
	margin: 2rem 0;
	border-top: 2px solid var(--border-light);
	background-color: var(--bg-secondary);
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

/* Individual Footer Sections */
.aps-footer-section {
	flex: 1 1 0;
	min-width: 240px;
	line-height: 1.6;
	color: var(--text-primary);
}

.aps-footer-section:empty {
	display: none;
}

/* Footer Title */
.aps-footer-title {
	margin: 0 0 0.75rem 0;
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: var(--primary);
	transition: color 0.3s ease;
}

/* Footer Disclaimer Section */
.aps-footer-disclaimer {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.65;
	max-width: 46ch;
	color: var(--text-secondary);
}

.aps-footer-disclaimer p {
	margin-bottom: 0.75rem;
	color: var(--text-secondary);
}

.aps-footer-disclaimer p:last-child {
	margin-bottom: 0;
}

/* Footer Links */
.aps-footer-section a,
.aps-footer-disclaimer a {
	color: var(--link-primary);
	font-weight: 500;
	transition: color 0.2s ease;
}

.aps-footer-section a:hover,
.aps-footer-section a:focus,
.aps-footer-disclaimer a:hover,
.aps-footer-disclaimer a:focus {
	color: var(--link-hover);
	text-decoration: underline;
}

/* Footer Page Links (Right Column) */
.aps-footer-page-link {
	display: block;
	margin-top: 0.5rem;
	padding: 0.25rem 0;
	transition: transform 0.2s ease, color 0.2s ease;
}

.aps-footer-page-link:hover {
	text-decoration: none;
}

/* Copyright Container */
.aps-copyright-container {
	width: 100%;
	padding: 1.5rem;
	margin: 0;
	background-color: var(--bg-tertiary);
	border-top: 1px solid var(--border-light);
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

.aps-copyright-container .copyright {
	margin: 0;
	font-size: 0.85rem;
	line-height: 1.6;
	color: var(--text-tertiary);
	text-align: center;
}

.aps-copyright-container a {
	color: var(--link-primary);
	text-decoration: none;
	font-weight: 500;
	transition: color 0.2s ease;
}

.aps-copyright-container a:hover,
.aps-copyright-container a:focus {
	color: var(--link-hover);
	text-decoration: underline;
}

/* Dark Mode Support - System Preference */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .aps-footer-container {
		background-color: var(--bg-secondary);
		border-top-color: var(--border-medium);
	}

	:root:not([data-theme="light"]) .aps-footer-title {
		color: var(--primary-light);
	}

	:root:not([data-theme="light"]) .aps-copyright-container {
		background-color: var(--bg-tertiary);
		border-top-color: var(--border-medium);
	}
}

/* Dark Mode Support - Manual Toggle */
[data-theme="dark"] .aps-footer-container {
	background-color: var(--bg-secondary);
	border-top-color: var(--border-medium);
}

[data-theme="dark"] .aps-footer-title {
	color: var(--primary-light);
}

[data-theme="dark"] .aps-footer-section a,
[data-theme="dark"] .aps-footer-disclaimer a {
	color: var(--text-inverse);
}

[data-theme="dark"] .aps-footer-section a:hover,
[data-theme="dark"] .aps-footer-section a:focus,
[data-theme="dark"] .aps-footer-disclaimer a:hover,
[data-theme="dark"] .aps-footer-disclaimer a:focus {
	color: var(--secondary-light);
}

[data-theme="dark"] .aps-copyright-container {
	background-color: var(--bg-tertiary);
	border-top-color: var(--border-medium);
}

[data-theme="dark"] .aps-copyright-container a {
	color: var(--text-inverse);
}

[data-theme="dark"] .aps-copyright-container a:hover,
[data-theme="dark"] .aps-copyright-container a:focus {
	color: var(--secondary-light);
}

/* Responsive Behavior */
@media (max-width: 768px) {
	.aps-footer-container {
		flex-direction: column;
		gap: 1.5rem;
		padding: 2rem 1rem;
	}

	.aps-footer-section {
		min-width: 100%;
	}

	.aps-footer-disclaimer {
		max-width: 100%;
	}

	.aps-copyright-container {
		padding: 1rem;
	}

	.aps-copyright-container .copyright {
		font-size: 0.8rem;
	}
}

.footer-bottom .hfg-slot.left {
	display: none;
}

/* Hide search icon */
.menu-item-nav-search {
	display: none !important;
}

/* ===========================
   HEADER STYLES
   =========================== */

/* Header and Row Backgrounds - Override Neve defaults */
.header-menu-sidebar-bg,
[class*="row-inner"] {
	position: relative;
	background: var(--bgimage, var(--bgcolor, var(--bg-primary)));
	background-position: var(--bgposition, center);
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: var(--bgattachment);
}

/* Header Bottom Row */
.header--row.header-bottom {
    background: var(--bg-primary);
    border-bottom: 1px solid var(--border-light);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.header-bottom-inner {
    padding: 0.5rem 0;
}

/* Primary Navigation */
.nav-menu-primary {
    display: flex;
    justify-content: center;
    align-items: center;
}

.primary-menu-ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Menu Items */
.primary-menu-ul > li {
    position: relative;
    margin: 0 1em;
    padding: 0;
}

.primary-menu-ul > li > .wrap {
    display: flex;
    align-items: center;
    padding: 0.75rem 1.25rem;
    transition: all 0.3s ease;
}

/* Menu Links */
.primary-menu-ul > li > .wrap > a {
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    transition: color 0.3s ease;
    position: relative;
}

/* Underline effect on hover */
.primary-menu-ul > li > .wrap > a::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--gradient-secondary);
    transition: width 0.3s ease;
}

.primary-menu-ul > li:hover > .wrap > a::after,
.primary-menu-ul > li > .wrap > a:hover::after {
    width: 100%;
}

/* Active Menu Item */
.primary-menu-ul > li.current-menu-item > .wrap > a,
.primary-menu-ul > li.current_page_item > .wrap > a {
    color: var(--primary);
    font-weight: 600;
}

.primary-menu-ul > li.current-menu-item > .wrap > a::after,
.primary-menu-ul > li.current_page_item > .wrap > a::after {
    width: 100%;
    background: var(--primary);
}

/* Hover State */
.primary-menu-ul > li:hover > .wrap > a,
.primary-menu-ul > li > .wrap > a:hover {
    color: var(--secondary);
}

/* Dropdown Caret */
.caret-wrap {
    cursor: pointer;
    padding: 0.25rem;
    transition: transform 0.3s ease;
}

.caret-wrap svg {
    width: 12px;
    height: 12px;
    fill: currentColor;
    transition: transform 0.3s ease;
}

.primary-menu-ul > li:hover .caret-wrap svg {
    transform: rotate(180deg);
}

/* Sub-menu Styles */
.primary-menu-ul .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: var(--bg-primary);
    border: 1px solid var(--border-light);
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    list-style: none;
    padding: 0.5rem 0;
    margin: 0;
    z-index: 1000;
}

.primary-menu-ul > li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Sub-menu Items */
.sub-menu li {
    margin: 0;
    padding: 0;
}

.sub-menu li > .wrap {
    padding: 0.65rem 1.5rem;
    transition: background-color 0.2s ease;
}

.sub-menu li > .wrap:hover {
    background-color: var(--bg-tertiary);
}

.sub-menu li > .wrap > a {
    color: var(--text-primary);
    text-decoration: none;
    font-size: 0.9rem;
    display: block;
    transition: color 0.2s ease;
}

.sub-menu li:hover > .wrap > a {
    color: var(--secondary);
    padding-left: 0.25rem;
}

/* Menu Item Separators */
.primary-menu-ul > li:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 20px;
    width: 1px;
    background: var(--border-light);
    opacity: 0.5;
}

/* Dark Mode Support - System Preference */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .header--row.header-bottom {
        background: var(--bg-primary);
        border-bottom-color: var(--border-light);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }

    :root:not([data-theme="light"]) .sub-menu {
        background: var(--bg-secondary);
        border-color: var(--border-medium);
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    }

    :root:not([data-theme="light"]) #footer-menu,
    :root:not([data-theme="light"]) .footer-menu,
    :root:not([data-theme="light"]) .footer-menu .nav-ul li a {
        background: var(--bg-primary);
    }

    :root:not([data-theme="light"]) #footer-menu .menu-item a,
    :root:not([data-theme="light"]) .footer-menu .menu-item a {
        color: var(--text-primary);
        transition: color 0.3s ease;
    }

    :root:not([data-theme="light"]) #footer-menu .menu-item a:hover,
    :root:not([data-theme="light"]) .footer-menu .menu-item a:hover {
        color: var(--brand-gold-light);
    }
}

/* Dark Mode Support - Manual Toggle */
[data-theme="dark"] .header--row.header-bottom {
    background: var(--bg-primary);
    border-bottom-color: var(--border-light);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .primary-menu-ul > li > .wrap > a {
    color: var(--text-primary);
}

[data-theme="dark"] .primary-menu-ul > li.current-menu-item > .wrap > a,
[data-theme="dark"] .primary-menu-ul > li.current_page_item > .wrap > a {
    color: var(--primary-light);
}

[data-theme="dark"] .primary-menu-ul > li.current-menu-item > .wrap > a::after,
[data-theme="dark"] .primary-menu-ul > li.current_page_item > .wrap > a::after {
    background: var(--primary-light);
}

[data-theme="dark"] .primary-menu-ul > li:hover > .wrap > a,
[data-theme="dark"] .primary-menu-ul > li > .wrap > a:hover {
    color: var(--secondary-light);
}

[data-theme="dark"] .sub-menu {
    background: var(--bg-secondary);
    border-color: var(--border-medium);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

[data-theme="dark"] .sub-menu li > .wrap > a {
    color: var(--text-primary);
}

[data-theme="dark"] .sub-menu li:hover > .wrap > a {
    color: var(--secondary-light);
}

[data-theme="dark"] .primary-menu-ul > li:not(:last-child)::after {
    background: var(--border-light);
}

[data-theme="dark"] .nv-nav-wrap {
    background: var(--bg-primary);
}

[data-theme="dark"] .caret-wrap,
[data-theme="dark"] .caret {
    color: var(--text-primary);
}

[data-theme="dark"] .caret-wrap svg,
[data-theme="dark"] .caret svg {
    fill: var(--text-primary);
}

[data-theme="dark"] .primary-menu-ul > li:hover .caret-wrap,
[data-theme="dark"] .primary-menu-ul > li:hover .caret {
    color: var(--secondary-light);
}

[data-theme="dark"] .primary-menu-ul > li:hover .caret-wrap svg,
[data-theme="dark"] .primary-menu-ul > li:hover .caret svg {
    fill: var(--secondary-light);
}

[data-theme="dark"] .menu-item-title-wrap {
    color: var(--text-primary);
}

[data-theme="dark"] .header-menu-sidebar-bg,
[data-theme="dark"] [class*="row-inner"] {
    position: relative;
    background: var(--bgimage, var(--bgcolor, var(--bg-primary)));
    background-position: var(--bgposition, center);
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: var(--bgattachment);
}

[data-theme="dark"] .header--row,
[data-theme="dark"] [class*="header-"] {
    background-color: var(--bg-primary);
    border-color: var(--border-light);
}

/* Footer Menu */
[data-theme="dark"] #footer-menu,
[data-theme="dark"] .footer-menu {
	background: var(--bg-primary);
}

[data-theme="dark"] #footer-menu .menu-item a,
[data-theme="dark"] .footer-menu .menu-item a {
	color: var(--text-primary);
	transition: color 0.3s ease;
}

[data-theme="dark"] #footer-menu .menu-item a:hover,
[data-theme="dark"] .footer-menu .menu-item a:hover {
	color: var(--brand-gold-light);
}

/* Responsive adjustments for tablets */
@media (max-width: 960px) {
    .primary-menu-ul > li > .wrap {
        padding: 0.65rem 1rem;
    }

    .primary-menu-ul > li > .wrap > a {
        font-size: 0.9rem;
    }

}

/* ===========================
   TOP BAR & DARK MODE TOGGLE
   =========================== */

/* Top Bar */
.aps-top-bar {
	position: sticky;
	top: 0;
	z-index: 1000;
	background-color: var(--bg-primary);
	border-bottom: 1px solid var(--border-light);
	padding: 8px 0;
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

.aps-top-bar-container {
	margin: 0 auto;
	padding: 0 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
    max-width: 1200px;
}

.aps-top-bar-left-section {
	display: flex;
	gap: 6px;
	align-items: center;
}

.aps-top-bar-controls {
	display: flex;
	gap: 6px;
	align-items: center;
}

.hidden {
    display: none;
}

/* Toolbar */
/* Helper visible state - button highlighted */
.apdb-toolbar-toggle.toolbar-visible {
	background-color: var(--link-primary);
	color: #fff;
	border-color: var(--link-primary);
}

.apdb-toolbar-toggle.toolbar-visible:hover {
	background-color: var(--link-hover);
	border-color: var(--link-hover);
}

.aps-toolbar {
	display: none; /* default hidden */

	background-color: var(--bg-primary);
	border-bottom: 1px solid var(--border-light);
	padding: 8px 0;
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

.aps-toolbar.visible {
	display: block;
}

.aps-toolbar-container {
	display: flex;	
	justify-content: space-between;
	align-items: center;
	margin: 0 auto;
	padding: 0 20px;
}

.aps-toolbar-left-section {
	display: flex;
	gap: 12px;
	align-items: center;
}

.aps-toolbar-controls {
	display: flex;
	gap: 12px;
	align-items: center;
}

/* Toolbar Action Buttons — compact overrides */
.aps-toolbar .apdb-action-buttons {
	flex-wrap: nowrap;
	overflow-x: auto;
	gap: 6px;
	margin: 0;
	padding: 0;
	box-shadow: none;
	scrollbar-width: thin;
}

.aps-toolbar .apdb-action-buttons::-webkit-scrollbar {
	height: 3px;
}

.aps-toolbar .apdb-action-buttons::-webkit-scrollbar-thumb {
	background: var(--border-light);
	border-radius: 3px;
}

.aps-toolbar .apdb-button {
	padding: 0.3rem 0.6rem;
	font-size: 0.8rem;
	font-weight: 500;
	box-shadow: none;
	border-color: var(--border-light);
	gap: 5px;
}

.aps-toolbar .apdb-button:hover:not(:disabled) {
	box-shadow: none;
	transform: none;
	background: var(--bg-tertiary);
	color: var(--text-primary);
	border-color: var(--border-medium, var(--border-light));
}

.aps-toolbar .apdb-privilege-badge {
	display: none;
}

/* Visual separator between Create and Search groups */
.aps-toolbar .apdb-button-contributor {
	margin-left: 6px;
}

.aps-toolbar .apdb-button-admin + .apdb-button-contributor {
	margin-left: 12px;
	padding-left: 0.6rem;
	border-left: 1px solid var(--border-light);
}

/* Menu Toggle Button */
.apdb-toolbar-toggle {
	background-color: var(--bg-primary);
	border: 1px solid var(--border-light);
	border-radius: 50%;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s ease, border-color 0.2s ease;
	width: 44px;
	height: 44px;
}

.apdb-toolbar-toggle:hover {
	background-color: var(--bg-tertiary);
	border-color: var(--border-medium, var(--border-light));
}

.apdb-toolbar-toggle:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

/* Menu Toolbar Styles */
.apdb-toolbar-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--text-primary);
	font-size: 18px;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

/* Ensure icon inherits color from button when toolbar is visible */
.apdb-toolbar-toggle.toolbar-visible .apdb-toolbar-icon {
	color: inherit;
}

/* Dark Mode + Color Themes: Ensure icon contrast on colored backgrounds */
[data-theme="dark"][data-color-theme="seventies"] .apdb-toolbar-toggle.toolbar-visible .apdb-toolbar-icon {
	color: #000000;
}

[data-theme="dark"][data-color-theme="eighties"] .apdb-toolbar-toggle.toolbar-visible .apdb-toolbar-icon {
	color: #000000;
}

[data-theme="dark"][data-color-theme="fifties"] .apdb-toolbar-toggle.toolbar-visible .apdb-toolbar-icon {
	color: #000000;
}

.apdb-toolbar-icon i {
	display: block;
}

/* Menu visible: show bars, hide close */
.apdb-icon-toolbar {
	opacity: 1;
	transform: scale(1) rotate(0deg);
}

.apdb-icon-close {
	display: none;
	opacity: 0;
	transform: scale(0) rotate(-180deg);
}

/* Home Link */
.apdb-home-link {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	padding: 8px 12px;
	border-radius: 6px;
	transition: all 0.3s ease;
	font-size: 14px;
	font-weight: 500;
	color: var(--text-secondary);
}

.apdb-home-link:hover {
	color: var(--text-primary);
	background-color: var(--bg-tertiary);
}

.apdb-home-link:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

.apdb-home-link i {
	font-size: 16px;
	color: inherit;
}

/* Contribute Link */
.apdb-contribute-link {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	padding: 8px 12px;
	border-radius: 6px;
	transition: all 0.3s ease;
	font-size: 14px;
	font-weight: 500;
	color: var(--text-secondary);
}

.apdb-contribute-link:hover {
	color: var(--text-primary);
	background-color: var(--bg-tertiary);
	text-decoration: none;
}

.apdb-contribute-link:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
	text-decoration: none;
}

.apdb-contribute-link:active {
	text-decoration: none;
}
.apdb-contribute-link i {
	font-size: 16px;
	color: inherit;
}

/* Newsletter Link */
.apdb-newsletter-link {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	padding: 8px 12px;
	border-radius: 6px;
	transition: all 0.3s ease;
	font-size: 14px;
	font-weight: 500;
	color: var(--text-secondary);
}

.apdb-newsletter-link:hover {
	color: var(--text-primary);
	background-color: var(--bg-tertiary);
	text-decoration: none;
}

.apdb-newsletter-link:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
	text-decoration: none;
}

.apdb-newsletter-link:active {
	text-decoration: none;
}

.apdb-newsletter-link i {
	font-size: 16px;
	color: inherit;
}

/* Account Link */
.apdb-account-link {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	padding: 8px 12px;
	border-radius: 6px;
	transition: all 0.3s ease;
	font-size: 14px;
	font-weight: 500;
	color: var(--text-secondary);
}

.apdb-account-link:hover {
	color: var(--text-primary);
	background-color: var(--bg-tertiary);
}

.apdb-account-link:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

.apdb-account-link i {
	font-size: 16px;
	color: inherit;
}

/* Sign In Link */
.apdb-signin-link {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	padding: 8px 12px;
	border-radius: 6px;
	transition: all 0.3s ease;
	font-size: 14px;
	font-weight: 500;
	color: var(--text-secondary);
}

.apdb-signin-link:hover {
	color: var(--text-primary);
	background-color: var(--bg-tertiary);
}

.apdb-signin-link:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

.apdb-signin-link i {
	font-size: 16px;
	color: inherit;
}

/* Dark Mode Overrides for Top Bar Links */
[data-theme="dark"] .apdb-home-link,
[data-theme="dark"] .apdb-contribute-link,
[data-theme="dark"] .apdb-newsletter-link,
[data-theme="dark"] .apdb-account-link,
[data-theme="dark"] .apdb-signin-link {
	color: var(--text-secondary);
}

[data-theme="dark"] .apdb-home-link:hover,
[data-theme="dark"] .apdb-contribute-link:hover,
[data-theme="dark"] .apdb-newsletter-link:hover,
[data-theme="dark"] .apdb-account-link:hover,
[data-theme="dark"] .apdb-signin-link:hover {
	color: var(--text-primary);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .apdb-home-link,
	:root:not([data-theme="light"]) .apdb-contribute-link,
	:root:not([data-theme="light"]) .apdb-newsletter-link,
	:root:not([data-theme="light"]) .apdb-account-link,
	:root:not([data-theme="light"]) .apdb-signin-link {
		color: var(--text-secondary);
	}

	:root:not([data-theme="light"]) .apdb-home-link:hover,
	:root:not([data-theme="light"]) .apdb-contribute-link:hover,
	:root:not([data-theme="light"]) .apdb-newsletter-link:hover,
	:root:not([data-theme="light"]) .apdb-account-link:hover,
	:root:not([data-theme="light"]) .apdb-signin-link:hover {
		color: var(--text-primary);
	}
}

/* Dark Mode Toggle Button */
.apdb-darkmode-toggle {
	background-color: var(--bg-primary);
	border: 1px solid var(--border-light);
	border-radius: 50%;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	width: 44px;
	height: 44px;
}

.apdb-darkmode-toggle:hover {
	background-color: var(--bg-tertiary);
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.apdb-darkmode-toggle:active {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.apdb-darkmode-toggle:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

/* Icon Styles */
.apdb-darkmode-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--text-primary);
	font-size: 18px;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.apdb-darkmode-icon i {
	display: block;
}

/* Light mode: show sun, hide moon */
.apdb-icon-light {
	opacity: 1;
	transform: scale(1) rotate(0deg);
}

.apdb-icon-dark {
	display: none;
	opacity: 0;
	transform: scale(0) rotate(-180deg);
}

/* Dark mode: hide sun, show moon */
[data-theme="dark"] .apdb-icon-light {
	display: none;
	opacity: 0;
	transform: scale(0) rotate(180deg);
}

[data-theme="dark"] .apdb-icon-dark {
	display: flex;
	opacity: 1;
	transform: scale(1) rotate(0deg);
}

/* Bookmarks Link Button */
.apdb-bookmarks-link {
	background-color: var(--bg-primary);
	border: 1px solid var(--border-light);
	border-radius: 50%;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	width: 44px;
	height: 44px;
	text-decoration: none;
	color: var(--text-primary);
}

.apdb-bookmarks-link:hover {
	background-color: var(--bg-tertiary);
	transform: translateY(-1px);
	border-color: var(--secondary);
	box-shadow: 0 0 0 2px var(--secondary-alpha), 0 4px 8px rgba(0, 0, 0, 0.15);
	color: var(--text-primary);
}

.apdb-bookmarks-link:active {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.apdb-bookmarks-link:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

.apdb-bookmarks-link i {
	font-size: 18px;
	color: inherit;
}

/* ===========================
   THEME SELECTOR
   =========================== */

/* Theme Selector Container */
.apdb-theme-selector {
	position: relative;
}

/* Theme Toggle Button */
.apdb-theme-toggle {
	background-color: var(--bg-primary);
	border: 1px solid var(--border-light);
	border-radius: 50%;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	width: 44px;
	height: 44px;
	color: var(--text-primary);
	font-size: 18px;
}

.apdb-theme-toggle:hover {
	background-color: var(--bg-tertiary);
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
	color: var(--text-primary);
}

.apdb-theme-toggle:active {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.apdb-theme-toggle:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

/* Theme Dropdown Menu */
.apdb-theme-dropdown {
	display: none;
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	background: var(--bg-primary);
	border: 1px solid var(--border-light);
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
	min-width: 200px;
	z-index: 10000;
	overflow: hidden;
}

.apdb-theme-dropdown.visible {
	display: block;
}

/* Theme Option Buttons */
.apdb-theme-dropdown .theme-option {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 12px 16px;
	margin: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	cursor: pointer;
	transition: background 0.2s ease;
	color: var(--text-primary);
	font-size: 0.95rem;
	font-weight: 400;
	text-align: left;
	text-decoration: none;
	font-family: inherit;
	line-height: 1.5;
	box-shadow: none;
}

.apdb-theme-dropdown .theme-option:hover {
	background: var(--bg-tertiary) !important;
	color: var(--text-primary) !important;
	border: none !important;
	text-decoration: none !important;
	transform: none !important;
	box-shadow: none !important;
}

.apdb-theme-dropdown .theme-option:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: -2px;
	background: var(--bg-tertiary);
}

.apdb-theme-dropdown .theme-option:active {
	background: var(--bg-tertiary);
	transform: none;
}

.apdb-theme-dropdown .theme-option.active {
	background: var(--secondary-alpha);
	font-weight: 600;
}

.apdb-theme-dropdown .theme-option.active::after {
	content: '✓';
	margin-left: auto;
	color: var(--secondary);
	font-weight: bold;
}

/* Theme Color Swatches */
.theme-swatch {
	width: 28px;
	height: 28px;
	border-radius: 6px;
	border: 2px solid var(--border-light);
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.theme-option:hover .theme-swatch {
	transform: scale(1.1);
}

/* Individual Theme Swatch Colors */
.theme-swatch.classic {
	background: linear-gradient(135deg, #1a1a2e 0%, #b8941f 50%, #6b8a52 100%);
}

.theme-swatch.seventies {
	background: linear-gradient(135deg, #D2691E 0%, #DAA520 50%, #446802 100%);
}

.theme-swatch.eighties {
	background: linear-gradient(135deg, #00FFFF 0%, #FF1493 50%, #FFFF00 100%);
}

.theme-swatch.fifties {
	background: linear-gradient(135deg, #FF7F50 0%, #98FF98 50%, #B0E0E6 100%);
}

/* Dark Mode Support for Theme Selector */
[data-theme="dark"] .apdb-theme-toggle {
	background-color: var(--bg-primary);
	border-color: var(--border-light);
	color: var(--text-primary);
}

[data-theme="dark"] .apdb-theme-dropdown {
	background: var(--bg-primary);
	border-color: var(--border-medium);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

[data-theme="dark"] .theme-option {
	color: var(--text-primary);
}

[data-theme="dark"] .theme-option:hover {
	background: var(--bg-tertiary);
}

[data-theme="dark"] .theme-swatch {
	border-color: var(--border-medium);
}

/* System Dark Mode Support */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .apdb-theme-toggle {
		background-color: var(--bg-primary);
		border-color: var(--border-light);
		color: var(--text-primary);
	}

	:root:not([data-theme="light"]) .apdb-theme-dropdown {
		background: var(--bg-primary);
		border-color: var(--border-medium);
		box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
	}

	:root:not([data-theme="light"]) .theme-option {
		color: var(--text-primary);
	}

	:root:not([data-theme="light"]) .theme-option:hover {
		background: var(--bg-tertiary);
	}

	:root:not([data-theme="light"]) .theme-swatch {
		border-color: var(--border-medium);
	}
}

/* Mobile Responsive */
@media (max-width: 767px) {
	.apdb-theme-toggle {
		width: 40px;
		height: 40px;
		font-size: 16px;
	}

	.apdb-theme-dropdown {
		min-width: 180px;
	}

	.theme-option {
		padding: 10px 14px;
		font-size: 0.9rem;
	}

	.theme-swatch {
		width: 24px;
		height: 24px;
	}
}

/* Menu Toggle Button */
.apdb-menu-toggle {
	background-color: var(--bg-primary);
	border: 1px solid var(--border-light);
	border-radius: 50%;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	width: 44px;
	height: 44px;
}

.apdb-menu-toggle:hover {
	background-color: var(--bg-tertiary);
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.apdb-menu-toggle:active {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.apdb-menu-toggle:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

/* Menu Icon Styles */
.apdb-menu-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--text-primary);
	font-size: 18px;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.apdb-menu-icon i {
	display: block;
}

/* Menu visible: show bars, hide close */
.apdb-icon-menu {
	opacity: 1;
	transform: scale(1) rotate(0deg);
}

.apdb-icon-close {
	display: none;
	opacity: 0;
	transform: scale(0) rotate(-180deg);
}

/* Menu hidden: hide bars, show close */
#header-grid.menu-hidden .apdb-icon-menu {
	display: none;
	opacity: 0;
	transform: scale(0) rotate(180deg);
}

#header-grid.menu-hidden .apdb-icon-close {
	display: flex;
	opacity: 1;
	transform: scale(1) rotate(0deg);
}

/* Hide menu by default - will be shown by menutoggle.js if needed */
#header-grid {
	display: none;
}

/* Hide menu when toggle state is active */
#header-grid.menu-hidden {
	display: none;
}

/* Assistant Toggle Button */
.apdb-window-toggle {
	background-color: var(--bg-primary);
	border: 2px solid var(--border-light);
	border-radius: 8px;
	padding: 8px 12px;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 8px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	font-size: 1rem;
	color: var(--text-primary);
	font-weight: 500;
	white-space: nowrap;
	transition: all 0.3s ease;
}

.apdb-window-toggle:hover {
	background-color: var(--primary);
	transform: translateY(-1px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.apdb-window-toggle:active {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.apdb-window-toggle:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

.apdb-window-toggle i {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.apdb-window-toggle > span:not(.apdb-privilege-badge) {
	display: inline-block;
}

/* Flex structure to allow multiple sidebar-style columns */

.aps-wrapper {
	flex: 1 1 auto;
	min-width: 90vw;
	max-width: 1400px;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	display: flex;
	flex-direction: row;
	margin: 0 auto;
}

@media (max-width: 768px) {
	.aps-wrapper {
		min-width: 98vw;
	}

}

/* aps-page-wrapper opening is in header.php */
/* aps-page-wrapper closing is in footer.php */
.aps-page-wrapper {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	position: relative;
}

/* aps-side-panels-wrapper opening is in footer.php */
/* aps-side-panels-wrapper closing is in footer.php */
.aps-side-panels-wrapper {
	display: flex;
	flex-direction: row;
	gap: 10px;
	align-items: flex-start;
	flex: 0 0 0px;
	transition: flex-basis 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Expand to fit one visible panel */
.aps-side-panels-wrapper:has(.visible) {
	flex-basis: clamp(280px, 30%, 420px);
}

/* Expand further when both panels are visible */
.aps-side-panels-wrapper:has(.helper-wrapper.visible):has(.assistant-wrapper.visible) {
	flex-basis: clamp(540px, 52%, 820px);
}

.aps-single-page-container {
	margin-top: 2.5rem;
	padding: 0 0.5rem;
}

/* ===========================
   404 ERROR PAGE STYLES
   =========================== */

.aps-404-content {
	max-width: 600px;
	margin: 4rem auto;
	padding: 3rem 2rem;
	text-align: center;
	background: var(--bg-secondary);
	border-radius: 12px;
	border: 1px solid var(--border-light);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

.aps-404-title {
	font-size: 3rem;
	color: var(--primary);
	margin-bottom: 1.5rem;
	margin-top: 0;
	font-weight: 700;
}

.aps-404-message {
	margin-bottom: 2.5rem;
}

.aps-404-message p {
	font-size: 1.1rem;
	line-height: 1.7;
	color: var(--text-primary);
	margin-bottom: 1rem;
}

.aps-404-message p:last-child {
	margin-bottom: 0;
}

.aps-404-actions {
	margin-top: 2rem;
}

.aps-404-actions .aps-button {
	display: inline-block;
	padding: 0.875rem 2rem;
	background: var(--gradient-secondary);
	color: var(--text-inverse);
	text-decoration: none;
	border-radius: 8px;
	font-weight: 600;
	font-size: 1rem;
	transition: all 0.3s ease;
	border: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.aps-404-actions .aps-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	text-decoration: none;
}

.aps-404-actions .aps-button:active {
	transform: translateY(0);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.aps-404-actions .aps-button:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 3px;
}

/* Dark Mode Support */
[data-theme="dark"] .aps-404-content {
	background: var(--bg-secondary);
	border-color: var(--border-medium);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .aps-404-title {
	color: var(--primary-light);
}

[data-theme="dark"] .aps-404-message p {
	color: var(--text-primary);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .aps-404-content {
		background: var(--bg-secondary);
		border-color: var(--border-medium);
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
	}

	:root:not([data-theme="light"]) .aps-404-title {
		color: var(--primary-light);
	}

	:root:not([data-theme="light"]) .aps-404-message p {
		color: var(--text-primary);
	}

}

/* Responsive Design */
@media (max-width: 767px) {
	.aps-404-content {
		margin: 2rem 1rem;
		padding: 2rem 1.5rem;
	}

	.aps-404-title {
		font-size: 2rem;
	}

	.aps-404-message p {
		font-size: 1rem;
	}

	.aps-404-actions .aps-button {
		padding: 0.75rem 1.5rem;
		font-size: 0.95rem;
	}

}

/* Helper Wrapper - Side Panel */
.helper-wrapper {
	flex: 0 0 0;
	width: 0;
	min-width: 0;
	max-width: 0;
	overflow: hidden;
	opacity: 0;
	background: var(--bg-primary);
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
}

.helper-wrapper.visible {
	flex: 1 1 0;
	width: auto;
	max-width: none;
	opacity: 1;
}

.helper-visible:hover {
	background-color: var(--link-hover);
	border-color: var(--link-hover);
}

/* Assistant Wrapper - Side Panel */
.assistant-wrapper {
	flex: 0 0 0;
	width: 0;
	min-width: 0;
	max-width: 0;
	overflow: hidden;
	opacity: 0;
	background: var(--bg-primary);
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
}

.assistant-wrapper.visible {
	flex: 1 1 0;
	width: auto;
	max-width: none;
	opacity: 1;
}

/* Dark Mode Support */
[data-theme="dark"] .helper-wrapper,
[data-theme="dark"] .assistant-wrapper {
	background: var(--bg-primary);
	border-left-color: var(--border-medium);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .helper-wrapper,
	:root:not([data-theme="light"]) .assistant-wrapper {
		background: var(--bg-primary);
		border-left-color: var(--border-medium);
	}

}

/* On mobile, panels should be hidden (handled by hide-mobile class) */
@media (max-width: 767px) {
	.aps-page-wrapper {
		gap: 0;
	}

	.helper-wrapper,
	.assistant-wrapper {
		display: none;
	}

}

/* ===========================
   HEADER SEARCH BOX
   =========================== */

/* Layout only - component styles are in APDB plugin CSS */
.aps-header-search {
	flex: 1;
	max-width: 600px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
}

/* Mobile - Hide header search */
@media (max-width: 767px) {
	.aps-header-search.hide-mobile {
		display: none;
	}

}

/* Tablet adjustments */
@media (max-width: 960px) and (min-width: 768px) {
	.aps-header-search {
		max-width: 400px;
	}

}

/* Dark Mode for specific elements when using manual toggle */
[data-theme="dark"] h1 {
	color: var(--text-primary);
}

[data-theme="dark"] h2 {
	color: var(--text-secondary);
}

[data-theme="dark"] h3 {
	color: var(--text-tertiary);
}

[data-theme="dark"] h4 {
	color: var(--text-tertiary);
}

[data-theme="dark"] h5 {
	color: var(--text-tertiary);
}

[data-theme="dark"] h6 {
	color: var(--text-tertiary);
}

[data-theme="dark"] .header--row.header-bottom {
	background: var(--bg-primary);
	border-bottom-color: var(--border-light);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .sub-menu {
	background: var(--bg-secondary);
	border-color: var(--border-medium);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

/* Responsive adjustments */
@media (max-width: 767px) {
	.aps-top-bar-container {
		padding: 0 15px;
	}

	.apdb-menu-toggle {
		width: 40px;
		height: 40px;
	}

	.apdb-menu-icon {
		font-size: 16px;
	}

	.apdb-darkmode-toggle {
		width: 40px;
		height: 40px;
	}

	.apdb-darkmode-icon {
		font-size: 16px;
	}

	.apdb-bookmarks-link {
		width: 40px;
		height: 40px;
	}

	.apdb-bookmarks-link i {
		font-size: 16px;
	}

	.apdb-window-toggle {
		padding: 6px 10px;
		font-size: 13px;
	}

	.apdb-window-toggle i {
	}

	.apdb-window-toggle span {
		display: none;
	}
}

/* Use important to override plugins styles */
@media (max-width: 767px) {
    .hide-mobile {
        display: none !important;
    }

    #wpadminbar {
        display: none !important;
    }
}

/* ===========================
   FRONT PAGE OBJECT COUNTERS
   =========================== */

.apdb-card-counter {
	font-size: 0.85rem;
	color: var(--text-tertiary);
	margin-top: 0.75rem;
	text-align: center;
	font-weight: 400;
	letter-spacing: 0.02em;
	opacity: 0.8;
	transition: opacity 0.3s ease;
}

.apdb-object-card:hover .apdb-card-counter {
	opacity: 1;
}

.apdb-card-counter .count-number {
	font-weight: 600;
	color: var(--text-secondary);
}

/* Dark mode support */
[data-theme="dark"] .apdb-card-counter {
	color: var(--text-tertiary);
}

[data-theme="dark"] .apdb-card-counter .count-number {
	color: var(--text-secondary);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .apdb-card-counter {
		color: var(--text-tertiary);
	}

	:root:not([data-theme="light"]) .apdb-card-counter .count-number {
		color: var(--text-secondary);
	}

}

/* ===========================
   SESSION MESSAGES
   =========================== */

.session-message {
	padding: 15px 20px;
	margin-bottom: 20px;
	border-radius: 8px;
	border-left: 4px solid;
	background-color: var(--bg-secondary);
	transition: all 0.3s ease;
}

.session-message p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.5;
	text-align: left;
}

/* Success Message */
.session-message-success {
	border-left-color: var(--success);
	background-color: var(--success-alpha);
	color: var(--success-dark);
}

.session-message-success p {
	color: var(--success-dark);
}

/* Error Message */
.session-message-error {
	border-left-color: var(--error);
	background-color: var(--error-alpha);
	color: var(--error-dark);
}

.session-message-error p {
	color: var(--error-dark);
}

/* Warning Message */
.session-message-warning {
	border-left-color: var(--warning);
	background-color: var(--warning-alpha);
	color: var(--warning-dark);
}

.session-message-warning p {
	color: var(--warning-dark);
}

/* Info Message */
.session-message-info {
	border-left-color: var(--info);
	background-color: var(--info-alpha);
	color: var(--info-dark);
}

.session-message-info p {
	color: var(--info-dark);
}

/* Dark Mode Support */
[data-theme="dark"] .session-message {
	background-color: var(--bg-tertiary);
}

[data-theme="dark"] .session-message-success {
	border-left-color: var(--success-light);
	color: var(--success-light);
}

[data-theme="dark"] .session-message-success p {
	color: var(--success-light);
}

[data-theme="dark"] .session-message-error {
	border-left-color: var(--error-light);
	color: var(--error-light);
}

[data-theme="dark"] .session-message-error p {
	color: var(--error-light);
}

[data-theme="dark"] .session-message-warning {
	border-left-color: var(--warning-light);
	color: var(--warning-light);
}

[data-theme="dark"] .session-message-warning p {
	color: var(--warning-light);
}

[data-theme="dark"] .session-message-info {
	border-left-color: var(--info-light);
	color: var(--info-light);
}

[data-theme="dark"] .session-message-info p {
	color: var(--info-light);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .session-message {
		background-color: var(--bg-tertiary);
	}

	:root:not([data-theme="light"]) .session-message-success {
		border-left-color: var(--success-light);
		color: var(--success-light);
	}

	:root:not([data-theme="light"]) .session-message-success p {
		color: var(--success-light);
	}

	:root:not([data-theme="light"]) .session-message-error {
		border-left-color: var(--error-light);
		color: var(--error-light);
	}

	:root:not([data-theme="light"]) .session-message-error p {
		color: var(--error-light);
	}

	:root:not([data-theme="light"]) .session-message-warning {
		border-left-color: var(--warning-light);
		color: var(--warning-light);
	}

	:root:not([data-theme="light"]) .session-message-warning p {
		color: var(--warning-light);
	}

	:root:not([data-theme="light"]) .session-message-info {
		border-left-color: var(--info-light);
		color: var(--info-light);
	}

	:root:not([data-theme="light"]) .session-message-info p {
		color: var(--info-light);
	}

}

/* Responsive adjustments */
@media (max-width: 767px) {
	.session-message {
		padding: 12px 15px;
		margin-bottom: 15px;
		border-radius: 6px;
	}

	.session-message p {
		font-size: 0.9rem;
	}

}

/* ===========================
   FORM USER ALERT
   =========================== */

.form-user-alert {
	padding: 15px 20px;
	margin-bottom: 20px;
	border-radius: 8px;
	border-left: 4px solid var(--info);
	background-color: var(--info-alpha);
	color: var(--info-dark);
	transition: all 0.3s ease;
}

.form-user-alert p {
	margin: 0;
	line-height: 1.5;
	text-align: left;
	color: var(--info-dark);
}

.form-user-alert a {
	color: var(--link-primary);
	text-decoration: underline;
	font-weight: 500;
	transition: color 0.2s ease;
}

.form-user-alert a:hover {
	color: var(--link-hover);
	text-decoration: none;
}

.form-user-alert a:focus {
	outline: 2px solid var(--link-focus);
	outline-offset: 2px;
}

.form-user-alert strong,
.form-user-alert b {
	font-weight: 600;
	color: var(--info-dark);
}

.form-user-alert em,
.form-user-alert i {
	font-style: italic;
}

/* Dark Mode Support */
[data-theme="dark"] .form-user-alert {
	background-color: var(--bg-tertiary);
	border-left-color: var(--info-light);
	color: var(--info-light);
}

[data-theme="dark"] .form-user-alert p {
	color: var(--info-light);
}

[data-theme="dark"] .form-user-alert strong,
[data-theme="dark"] .form-user-alert b {
	color: var(--info-light);
}

[data-theme="dark"] .form-user-alert a {
	color: var(--text-inverse);
}

[data-theme="dark"] .form-user-alert a:hover {
	color: var(--white);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .form-user-alert {
		background-color: var(--bg-tertiary);
		border-left-color: var(--info-light);
		color: var(--info-light);
	}

	:root:not([data-theme="light"]) .form-user-alert p {
		color: var(--info-light);
	}

	:root:not([data-theme="light"]) .form-user-alert strong,
	:root:not([data-theme="light"]) .form-user-alert b {
		color: var(--info-light);
	}

	:root:not([data-theme="light"]) .form-user-alert a {
		color: var(--text-inverse);
	}

	:root:not([data-theme="light"]) .form-user-alert a:hover {
		color: var(--white);
	}

}

.character-counter {
	display: inline-block;
	margin-left: 10px;
	font-size: 0.85rem;
	color: var(--text-secondary);
	font-weight: 500;
}

[data-theme="dark"] .character-counter {
	color: var(--text-secondary);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .character-counter {
		color: var(--text-secondary);
	}

}

.form-section-notice {
	margin-top: 35px;
	margin-bottom: 18px;
	padding: 0;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--primary);
}

.form-section-notice p {
	margin: 0;
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--primary);
	letter-spacing: 0.3px;
	line-height: 1.3;
	text-transform: none;
}

[data-theme="dark"] .form-section-notice {
	border-bottom-color: var(--secondary-light);
}

[data-theme="dark"] .form-section-notice p {
	color: var(--text-primary);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .form-section-notice {
		border-bottom-color: var(--secondary-light);
	}

	:root:not([data-theme="light"]) .form-section-notice p {
		color: var(--text-primary);
	}

}

/* ===========================
   FORM SECTION INFO
   =========================== */

.form-section-info {
	margin-top: 8px;
	margin-bottom: 0;
	padding: 0;
	font-size: 0.9rem;
	color: var(--text-secondary);
	line-height: 1.5;
}

[data-theme="dark"] .form-section-info {
	color: var(--text-secondary);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .form-section-info {
		color: var(--text-secondary);
	}

}

/* Responsive adjustments */
@media (max-width: 767px) {
	.form-user-alert {
		padding: 12px 15px;
		margin-bottom: 15px;
		border-radius: 6px;
	}

	.form-user-alert p {
		font-size: 0.9rem;
	}

	.form-section-notice {
		margin-top: 30px;
		margin-bottom: 15px;
		padding-bottom: 6px;
	}

	.form-section-notice p {
		font-size: 1.1rem;
		letter-spacing: 0.2px;
	}

	.form-section-info {
		font-size: 0.85rem;
	}

}

/* ===========================
   GENERIC TABLE STYLES
   =========================== */

/* Base table styling - applies to all tables by default */
table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	border: 1px solid var(--border-light);
	border-radius: 8px;
	overflow: hidden;
	background: var(--bg-primary);
	transition: border-color 0.3s ease;
}

table th,
table td {
	padding: 0.75rem 1rem;
	text-align: left;
	border-bottom: 1px solid var(--border-light);
	transition: background-color 0.2s ease;
	line-height: 1.65em;
}

table thead th {
	background: var(--bg-tertiary);
	font-weight: 600;
	border-bottom: 2px solid var(--border-medium);
	color: var(--text-primary);
	font-size: 0.95rem;
	text-transform: none;
	letter-spacing: 0.02em;
}

table tbody tr {
	transition: background-color 0.2s ease;
}

table tbody tr:hover {
	background: var(--bg-secondary);
}

table tbody tr:last-child td {
	border-bottom: none;
}

table tbody td {
	color: var(--text-primary);
	font-size: 0.95rem;
}

/* Alternating row colors for better readability */
table.table-striped tbody tr:nth-child(odd) {
	background: var(--bg-secondary);
}

table.table-striped tbody tr:nth-child(even) {
	background: var(--bg-primary);
}

table.table-striped tbody tr:hover {
	background: var(--bg-tertiary);
}

/* Bordered table variant */
table.table-bordered th,
table.table-bordered td {
	border: 1px solid var(--border-light);
}

/* Compact table variant */
table.table-compact th,
table.table-compact td {
	padding: 0.5rem 0.75rem;
	font-size: 0.9rem;
}

/* Full-width table variant (no border radius) */
table.table-full {
	border-radius: 0;
	margin: 0;
}

/* Centered text in specific columns */
table th.text-center,
table td.text-center {
	text-align: center;
}

table th.text-right,
table td.text-right {
	text-align: right;
}

/* Highlight specific columns */
table th.highlight,
table td.highlight {
	background: var(--secondary-alpha);
	font-weight: 600;
}

/* Code cells */
table td code,
table th code {
	background: var(--bg-tertiary);
	padding: 0.2rem 0.4rem;
	border-radius: 4px;
	font-family: "Courier New", monospace;
	font-size: 0.85em;
	color: var(--secondary);
	border: 1px solid var(--border-light);
}

/* Responsive table wrapper */
.table-responsive {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 1.5rem 0;
	border-radius: 8px;
	border: 1px solid var(--border-light);
}

.table-responsive table {
	margin: 0;
	border: none;
}

/* Dark Mode Support - Manual Toggle */
[data-theme="dark"] table {
	background: var(--bg-primary);
	border-color: var(--border-medium);
}

[data-theme="dark"] table th,
[data-theme="dark"] table td {
	border-bottom-color: var(--border-light);
}

[data-theme="dark"] table thead th {
	background: var(--bg-secondary);
	border-bottom-color: var(--border-strong);
}

[data-theme="dark"] table tbody tr:hover {
	background: var(--bg-secondary);
}

[data-theme="dark"] table.table-striped tbody tr:nth-child(odd) {
	background: var(--bg-secondary);
}

[data-theme="dark"] table.table-striped tbody tr:nth-child(even) {
	background: var(--bg-primary);
}

[data-theme="dark"] table.table-striped tbody tr:hover {
	background: var(--bg-tertiary);
}

[data-theme="dark"] table th.highlight,
[data-theme="dark"] table td.highlight {
	background: rgba(242, 197, 92, 0.15);
}

[data-theme="dark"] table td code,
[data-theme="dark"] table th code {
	background: var(--bg-secondary);
	color: var(--secondary-light);
	border-color: var(--border-medium);
}

[data-theme="dark"] .table-responsive {
	border-color: var(--border-medium);
}

/* Dark Mode Support - System Preference */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) table {
		background: var(--bg-primary);
		border-color: var(--border-medium);
	}

	:root:not([data-theme="light"]) table th,
	:root:not([data-theme="light"]) table td {
		border-bottom-color: var(--border-light);
	}

	:root:not([data-theme="light"]) table thead th {
		background: var(--bg-secondary);
		border-bottom-color: var(--border-strong);
	}

	:root:not([data-theme="light"]) table tbody tr:hover {
		background: var(--bg-secondary);
	}

	:root:not([data-theme="light"]) table.table-striped tbody tr:nth-child(odd) {
		background: var(--bg-secondary);
	}

	:root:not([data-theme="light"]) table.table-striped tbody tr:nth-child(even) {
		background: var(--bg-primary);
	}

	:root:not([data-theme="light"]) table.table-striped tbody tr:hover {
		background: var(--bg-tertiary);
	}

	:root:not([data-theme="light"]) table th.highlight,
	:root:not([data-theme="light"]) table td.highlight {
		background: rgba(242, 197, 92, 0.15);
	}

	:root:not([data-theme="light"]) table td code,
	:root:not([data-theme="light"]) table th code {
		background: var(--bg-secondary);
		color: var(--secondary-light);
		border-color: var(--border-medium);
	}

	:root:not([data-theme="light"]) .table-responsive {
		border-color: var(--border-medium);
	}

}

/* Responsive Adjustments */
@media (max-width: 768px) {
	table th,
	table td {
		padding: 0.5rem;
		font-size: 0.9rem;
	}

	table.table-compact th,
	table.table-compact td {
		padding: 0.4rem 0.5rem;
		font-size: 0.85rem;
	}

	/* Stack table cells on very small screens if needed */
	table.table-stack thead {
		display: none;
	}

	table.table-stack tbody tr {
		display: block;
		margin-bottom: 1rem;
		border: 1px solid var(--border-light);
		border-radius: 8px;
		padding: 0.5rem;
	}

	table.table-stack tbody td {
		display: block;
		text-align: right;
		padding: 0.5rem;
		border-bottom: 1px solid var(--border-light);
	}

	table.table-stack tbody td:last-child {
		border-bottom: none;
	}

	table.table-stack tbody td::before {
		content: attr(data-label);
		float: left;
		font-weight: 600;
		color: var(--text-secondary);
	}

}

/* ===========================
   APDB CUSTOM CHECKBOX STYLES
   =========================== */

.apdb-filter-checkbox {
	display: flex;
	align-items: center;
}

.apdb-checkbox-label {
	display: flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
	user-select: none;
	transition: all 0.3s ease;
	padding: 8px 12px;
	border-radius: 6px;
}

.apdb-checkbox-label:hover {
	background-color: var(--bg-tertiary);
}

.apdb-checkbox {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 22px;
	height: 22px;
	border: 2px solid var(--border-medium);
	border-radius: 6px;
	background-color: var(--bg-primary);
	cursor: pointer;
	position: relative;
	transition: all 0.3s ease;
	flex-shrink: 0;
}

.apdb-checkbox:hover {
	border-color: var(--secondary);
	box-shadow: 0 0 0 3px var(--secondary-alpha);
}

.apdb-checkbox:focus {
	outline: none;
	border-color: var(--secondary);
	box-shadow: 0 0 0 3px var(--secondary-alpha);
}

.apdb-checkbox:checked {
	background: var(--gradient-secondary);
	border-color: var(--secondary);
}

.apdb-checkbox:checked::after {
	content: '';
	position: absolute;
	left: 6px;
	top: 2px;
	width: 6px;
	height: 11px;
	border: solid white;
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}

.apdb-checkbox-label span {
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--text-primary);
	transition: color 0.3s ease;
}

.apdb-checkbox:checked + span {
	color: var(--secondary);
	font-weight: 600;
}

[data-theme="dark"] .apdb-checkbox {
	background-color: var(--bg-secondary);
	border-color: var(--border-medium);
}

[data-theme="dark"] .apdb-checkbox:hover {
	border-color: var(--secondary-light);
	box-shadow: 0 0 0 3px rgba(242, 197, 92, 0.15);
}

[data-theme="dark"] .apdb-checkbox:focus {
	border-color: var(--secondary-light);
	box-shadow: 0 0 0 3px rgba(242, 197, 92, 0.15);
}

[data-theme="dark"] .apdb-checkbox:checked {
	background: linear-gradient(135deg, var(--secondary-light) 0%, var(--secondary) 100%);
	border-color: var(--secondary-light);
}

[data-theme="dark"] .apdb-checkbox:checked + span {
	color: var(--secondary-light);
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .apdb-checkbox {
		background-color: var(--bg-secondary);
		border-color: var(--border-medium);
	}

	:root:not([data-theme="light"]) .apdb-checkbox:hover {
		border-color: var(--secondary-light);
		box-shadow: 0 0 0 3px rgba(242, 197, 92, 0.15);
	}

	:root:not([data-theme="light"]) .apdb-checkbox:focus {
		border-color: var(--secondary-light);
		box-shadow: 0 0 0 3px rgba(242, 197, 92, 0.15);
	}

	:root:not([data-theme="light"]) .apdb-checkbox:checked {
		background: linear-gradient(135deg, var(--secondary-light) 0%, var(--secondary) 100%);
		border-color: var(--secondary-light);
	}

	:root:not([data-theme="light"]) .apdb-checkbox:checked + span {
		color: var(--secondary-light);
	}

}

@media (max-width: 767px) {
	.apdb-checkbox-label {
		padding: 6px 10px;
		gap: 10px;
	}

	.apdb-checkbox {
		width: 20px;
		height: 20px;
	}

	.apdb-checkbox:checked::after {
		left: 5px;
		top: 1px;
		width: 5px;
		height: 10px;
		border-width: 0 2px 2px 0;
	}

	.apdb-checkbox-label span {
		font-size: 0.9rem;
	}

}

/* ===========================
   APDB IDENTIFIER SYSTEM
   =========================== */

.apdb-identifier-documentation {
	margin: 0 auto;
	max-width: 100%;
	font-family: 'Lato', sans-serif;
	line-height: 1.65em;
	color: var(--text-primary);
}

.apdb-identifier-documentation section {
	margin-bottom: 3rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--border-light);
	transition: border-color 0.3s ease;
}

.apdb-identifier-documentation section:last-child {
	border-bottom: none;
}

/* Headings inherit from theme styles */

.apdb-identifier-documentation .lead {
	font-size: 1.2rem;
	color: var(--text-secondary);
	margin-bottom: 1.5rem;
	line-height: 1.65em;
}

.format-box {
	background: var(--bg-secondary);
	border-left: 4px solid var(--primary);
	padding: 1.5rem;
	margin: 1.5rem 0;
	text-align: center;
	border-radius: 8px;
	transition: all 0.3s ease;
}

.aps-id-example {
	font-size: 2rem;
	font-weight: 700;
	color: var(--primary);
	font-family: "Courier New", monospace;
	display: block;
	margin-bottom: 0.5rem;
	letter-spacing: 0.05em;
}

.format-explanation {
	color: var(--text-secondary);
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.5;
}

/* Tables inherit from generic table styles above */

.apdb-identifier-documentation code {
	background: var(--bg-tertiary);
	padding: 0.2rem 0.4rem;
	border-radius: 4px;
	font-family: "Courier New", monospace;
	font-size: 0.9em;
	color: var(--secondary);
	border: 1px solid var(--border-light);
}

.apdb-identifier-documentation pre {
	background: var(--bg-secondary);
	border: 1px solid var(--border-light);
	border-radius: 8px;
	padding: 1rem;
	overflow-x: auto;
	margin: 1rem 0;
}

.apdb-identifier-documentation pre code {
	background: none;
	padding: 0;
	color: var(--text-primary);
	font-size: 0.9rem;
	border: none;
}

.fair-features {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 1.5rem;
	margin: 2rem 0;
}

.fair-feature {
	background: var(--bg-secondary);
	padding: 1.5rem;
	border-radius: 8px;
	border-left: 4px solid var(--success);
	transition: all 0.3s ease;
}

.fair-feature:hover {
	background: var(--bg-tertiary);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.fair-feature h4 {
	margin-top: 0;
	margin-bottom: 0.8rem;
	color: var(--success);
	font-size: 1.1rem;
	font-weight: 600;
}

.apdb-identifier-documentation ul,
.apdb-identifier-documentation ol {
	margin: 1rem 0;
	padding-left: 2rem;
	line-height: 1.65em;
	color: var(--text-primary);
}

.apdb-identifier-documentation li {
	margin: 0.5rem 0;
	line-height: 1.65em;
	text-align: left;
}

.apdb-identifier-documentation strong,
.apdb-identifier-documentation b {
	font-weight: 600;
	color: var(--text-primary);
}

.apdb-identifier-documentation p strong,
.apdb-identifier-documentation p b {
	font-weight: 600;
}

.tech-specs-table th {
	width: 30%;
	background: var(--bg-tertiary);
	font-weight: 600;
}

/* Dark Mode Support - Manual Toggle */
[data-theme="dark"] .apdb-identifier-documentation {
	color: var(--text-primary);
}

/* Headings inherit dark mode from theme styles */

[data-theme="dark"] .format-box {
	background: var(--bg-tertiary);
	border-left-color: var(--primary-light);
}

[data-theme="dark"] .aps-id-example {
	color: var(--primary-light);
}

/* Tables inherit dark mode from generic table styles */

[data-theme="dark"] .apdb-identifier-documentation code {
	background: var(--bg-secondary);
	color: var(--text-primary);
	border-color: var(--border-medium);
}

[data-theme="dark"] .apdb-identifier-documentation pre {
	background: var(--bg-tertiary);
	border-color: var(--border-medium);
}

[data-theme="dark"] .fair-feature {
	background: var(--bg-tertiary);
	border-left-color: var(--success-light);
}

[data-theme="dark"] .fair-feature:hover {
	background: var(--bg-secondary);
}

[data-theme="dark"] .fair-feature h4 {
	color: var(--success-light);
}

/* Dark Mode Support - System Preference */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) .apdb-identifier-documentation {
		color: var(--text-primary);
	}

	/* Headings inherit dark mode from theme styles */

	:root:not([data-theme="light"]) .format-box {
		background: var(--bg-tertiary);
		border-left-color: var(--primary-light);
	}

	:root:not([data-theme="light"]) .aps-id-example {
		color: var(--primary-light);
	}

	/* Tables inherit dark mode from generic table styles */

	:root:not([data-theme="light"]) .apdb-identifier-documentation code {
		background: var(--bg-secondary);
		color: var(--secondary-light);
		border-color: var(--border-medium);
	}

	:root:not([data-theme="light"]) .apdb-identifier-documentation pre {
		background: var(--bg-tertiary);
		border-color: var(--border-medium);
	}

	:root:not([data-theme="light"]) .fair-feature {
		background: var(--bg-tertiary);
		border-left-color: var(--success-light);
	}

	:root:not([data-theme="light"]) .fair-feature:hover {
		background: var(--bg-secondary);
	}

	:root:not([data-theme="light"]) .fair-feature h4 {
		color: var(--success-light);
	}

}

/* Responsive Adjustments */
@media (max-width: 768px) {
	.fair-features {
		grid-template-columns: 1fr;
	}

	.aps-id-example {
		font-size: 1.5rem;
	}

	.format-box {
		padding: 1rem;
	}

	/* Tables inherit responsive styles from generic table styles */

	/* Keep toolbar buttons horizontal on mobile */
	.aps-toolbar .apdb-action-buttons {
		flex-direction: row;
	}

}

/* ===========================
   BACK TO TOP BUTTON
   =========================== */
.aps-back-to-top {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	width: 40px;
	min-width: 40px;
	height: 40px;
	min-height: 40px;
	padding: 0;
	border: 1px solid var(--border-light);
	border-radius: 50%;
	flex-shrink: 0;
	aspect-ratio: 1 / 1;
	background: var(--bg-primary, #fff);
	color: var(--text-secondary, #555);
	font-size: 1rem;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease, background 0.2s ease;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.aps-back-to-top.visible {
	opacity: 1;
	visibility: visible;
}

.aps-back-to-top:hover {
	background: var(--bg-secondary, #f5f5f5);
	color: var(--primary, #333);
}

