/* theme.css */

:root {
    /* =========================================
       1. CORE PALETTE (Design Tokens)
       ========================================= */
    --core-bg-main: #3A3A3A;
    --core-gray-10: #1B1B1B;
    --core-gray-30: #303030; /* Merged: #303030, #303128, #323021 */
    --core-gray-40: #474747; /* Merged: #464646, #464637, #474747, #484848, rgba(76,76,76,1) */
    --core-gray-50: #515151; /* Merged: #4D4D4D, #515151, #525252 */
    --core-gray-60: #5C5C5C; /* Merged: #5C5C5C, #5D5D5D */
    --core-olive: #78724E;
    --core-black: black;
    --core-gray: gray;
    --core-white: white;

    /* =========================================
       2. SEMANTIC ALIASES
       ========================================= */

    /* Global Backgrounds */
    --bg-body: var(--core-bg-main);
    --bg-header: var(--core-gray-40);
    --bg-section: var(--core-gray-50);
    --bg-overlay: rgba(0, 0, 0, 0.9);
    --bg-card-translucent: rgba(27, 27, 27, 0.3);
    --bg-accent: #928A5F;

    /* Text & Links */
    --text-main: #D4D4D4;
    --color-link: #A09A6B;
    --color-highlight: #B9B511;
    --black-solid: var(--core-black);

    /* Borders */
    --border-header: #555137;
    --border-section: var(--core-black);
    
    /* Account Page Additions */
    --bg-admin-links: #462F2F;
    --bg-settings: var(--core-gray-40);
    --bg-card-glass: rgba(76, 76, 76, 0.7);
    --bg-card-hover: #373737;
    --bg-user-card: var(--core-gray-30);
    --bg-privilege: #4F6200;
    
    --border-gray: var(--core-gray);
    --border-light-hover: #E8E8DB;	

    /* Bio Page Additions */
    --bg-card-dark: var(--core-gray-30);
    --bg-pane-dark: var(--core-gray-30);
    --text-gold-light: #D0CDB7;
    
    /* Highlights Page Additions */
    --bg-highlight: #282800;
    --bg-highlight-alt: #343400;
    --bg-highlight-meta: #202000;
    --bg-input-dark: var(--core-gray-10);
    
    --border-highlight: #5B5B00;
    
    --text-highlight-meta: #8A8A00;
    --text-gray: var(--core-gray);	
    
    /* Journal Page Additions */
    --bg-journal-update: #00372D;
    
    --border-input: var(--core-olive);
    --border-journal-info: #035246;
    
    /* Login & Form Additions */
    --text-muted: #B4B4B4;
    --text-link-light: #FEF7DE;
    
    --border-input-light: #B2B2B2;
    --border-focus: #E7B643;
    
    --bg-alert-red: #87050F;
    
    /* Metaclinic UI Additions */
    --border-olive: var(--core-olive); 
    
    --bg-button-dark: var(--core-gray-40);
    --bg-button-hover: #6A6A6A;
    --bg-table-hover: #555555;
    
    /* Metapic Additions */
    --shadow-olive-dark: #464600;
    
    /* MetaQ Hover & Quiz Additions */
    --bg-section-hover: var(--core-gray-60);
    --bg-section-active: #696969;
    
    --bg-quiz: #353931;
    --bg-quiz-hover: #41463C;
    --bg-quiz-active: #555C4E;
    
    /* Metaslide Additions */
    --bg-panel-solid: var(--core-gray-40); 
    
    --bg-tag-dark: #002416;
    --bg-tag-hover: #004000;
    
    /* Metavid Tab Additions */
    --bg-tab-inactive: #7A7A7A;
    --bg-tab-hover: #BEBEBE;
    --bg-tab-active: var(--core-white);
    
    /* Quiz Page Additions */
    --bg-quiz-ans-odd: var(--core-gray-40);
    --bg-quiz-ans-even: var(--core-gray-50);
    
    --border-quiz-ans: #9A9A9A;
    
    /* Ref Page Additions (Treecrumbs) */
    --bg-treecrumb: var(--core-gray-50);
    --bg-treecrumb-hover: var(--core-gray-60);
    --text-shadow-light: #C9C9C9;
    
    --text-link-olive: var(--core-olive);
    
    /* Images Page Additions */
    --text-white: var(--core-white);
    
    /* Reports Page Additions */
    --bg-highlight-text: #777700;
    
    /* Topics Page Additions */
    --bg-topic-card: var(--core-gray-10); 
    --bg-topic-hover: #2A2A2A;
    --bg-show-all-hover: #353535;
    
    /* Updates Page Additions */
    --border-teal: #046C5C;
    --shadow-teal: #058370;
    --bg-card-opaque: var(--core-gray-40);
    
    /* Header/Footer Additions */
    --bg-nav-glass: rgba(45, 45, 45, 0.5);
}

/* =========================================
   GLOBAL LAYOUT & BASE TYPOGRAPHY
   ========================================= */

* {
    box-sizing: border-box;
    color: var(--text-main);
}

body {
    min-height: 97vh;	
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    background: var(--bg-body);
    margin: 0; 
}

#content {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    z-index: 1;
    width: 100%;
    flex-grow: 1;
}

#page_info {
    margin: 0 0 20px;
    padding: 20px 30px;
    background-color: var(--bg-header);
    border-bottom: 3px solid var(--border-header);
    width: 100%;
}

h1 {
    font-family: serif;
    font-size: 1.8em;
    font-weight: normal;
    text-transform: uppercase;
    letter-spacing: 10px;
    text-align: center;
}

h2 {
    font-family: serif;
    font-size: 1.3em; 
    font-weight: normal;
    text-align: center;
    font-style: italic;
}

p {
    word-wrap: break-word;
}

/* Links */
a, a:active, a:visited {
    text-decoration: none;
    color: var(--text-main);
}

#info_link {
    margin: 0 0 20px;
    width: 100%;
}

/* Lists */
ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

li {
    padding: 5px 0;
}

ul ul {
    padding-left: 15px;
    list-style-type: disc;
}

ul ul ul {
    padding: 5px 0 0 25px;
    list-style-type: circle;
}

ol {
    margin-left: 10px;
    padding-left: 10px;
}

hr {
    width: 90%;
    border: 1px dashed var(--border-gray);
}

/* Tables */
table {
    table-layout: fixed;
    width: 100%;
    white-space: normal;
    word-wrap: break-word;
}

table, th, td {
    border-collapse: collapse;
    border: 1px solid var(--border-olive);
    text-align: center;
}

th, td {
    padding: 10px 5px;
}

tr:hover {
    background: var(--bg-table-hover);
}

#total {
    text-align: center;
    font-style: italic;
}

/* =========================================
   GLOBAL HEADER & FOOTER
   ========================================= */

#page_header, #page_footer {
    width: 100%;
    margin: 0;
    padding: 5px;
    display: flex;
    align-items: center;
    background: var(--bg-nav-glass);
}

#page_header {
    top: 0;
    justify-content: space-between;
    margin-bottom: 10px;
}

#page_footer {
    bottom: 0;
    justify-content: center;
    margin-top: 20px;
}

#page_footer p {
    margin: 0;
    padding: 0;
    font-family: Georgia;
    font-size: 0.9em;
    letter-spacing: 2px;
}

#page_header a, #page_footer a {
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
}

#page_header img {
    height: 20px;
}

#page_footer a {
    margin-left: 5px;    
}

#page_footer img {
    height: 15px;
}

#page_header img:hover, #page_footer img:hover {
    filter: opacity(50%);
}

#page_footer hr {
    width: 100%;
    border: 1px solid var(--text-main);
}

/* =========================================
   SELECT2 GLOBAL OVERRIDES
   ========================================= */

#select2-topics_list-container, .select2-search, input[type=search], .select2-results, .select2-container--default .select2-results__option--selected {
    background: var(--bg-panel-solid);
    color: var(--text-main);
}

.select2-container--default .select2-selection--single {
    border: 1px solid var(--black-solid);
}

#select2-topics_list-container, .select2-dropdown {
    border: 2px solid var(--border-olive);
}

.select2-container--default .select2-selection--single, .select2-selection, .select2-container--open .select2-dropdown--below, .select2-container--open .select2-dropdown--above, .select2-selection__rendered {
    background-color: var(--bg-section);
    color: var(--text-main) !important;
}

/* =========================================
   GLOBAL SEARCH & RESULT UI (Meta Pages)
   ========================================= */

/* Shared Search Inputs */
#search_bar, #new_topic {
    border: none;
    height: 100%;
    flex-grow: 2;
    padding: 0 5px;
    font-size: 1.05em;
    background: var(--bg-panel-solid);
    color: var(--text-main);
}

#search_button, #deep_button, #add_button {
    -webkit-appearance: none;
    height: 100%;
    background: var(--bg-panel-solid);
    border: 2px solid var(--border-olive);
    padding: 0 10px;
    color: var(--text-main);
    cursor: pointer;
}

/* Shared Results Container */
#results {
    width: 100%;
    display: flex;
    flex-direction: column;
}

#result_count {
    text-align: center;
    margin: 10px 0;
    font-style: italic;
}

#result_items {
    width: 100%;
    display: flex;
    flex-direction: column;
}

/* Shared Result Card Inner Elements */
.result_meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    padding: 5px;
}

.result_meta p {
    font-style: italic;
    margin: 0;
}

.result_num {
    font-size: 1.1em;
    font-weight: bold;
}

.result_source, .result_crumbs {
    font-size: 0.7em;
}

.result_crumbs {
    margin: 0;
    text-align: right;
}

.result img {
    max-width: 100%;
}

.result p {
    text-align: justify;
}

/* Shared Icon Grids (Metaclinic, Metapic, Metaref) */
#sections {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    margin: 10px 0 0;
}

.section {
    text-align: center;
    width: 100px;
    margin: 0 5px 10px;
    padding: 5px;
}

.section img:hover {
    filter: opacity(50%);
    box-shadow: 1px 3px 5px var(--shadow-olive-dark);
}