/* THEME CONFIGURATION
   Background: #efefef (Light)
   Text: #333333 (Dark Grey)
   Accent 1 (Cyan): #06b6d4
   Accent 2 (Amber): #f59e0b
   Surface/Cards: #ffffff
   Headings: Inter
*/



/* --- FONTS --- */
@font-face { font-family: "Lato"; src: url("SyneMono-Regular.ttf") format("opentype"); font-display: swap; }
@font-face { font-family: "Latobo"; src: url("VT323-Regular.ttf") format("opentype"); font-display: swap; }
@font-face { font-family: "Latoso"; src: url("CourierPrime-Regular.ttf") format("opentype"); font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("CourierPrime-Bold.ttf") format("opentype"); font-display: swap; }
@font-face { font-family: "Dosis"; src: url("SyneMono-Regular.ttf") format("opentype"); font-display: swap; }
@font-face { font-family: "Inter"; src: url("Inter-Regular.ttf") format("opentype"); font-display: swap; }
/* --- GENERAL BODY --- */
body { 
    margin-bottom: 30px; 
    font-family: Lato, sans-serif; 
    letter-spacing: 1px; 
    font-size: 1.6em; 
    font-weight: 400; 
    background: #efefef; 
    color: #333333;      
}
body.admin { padding-top: 50px; padding-bottom: 20px; margin-bottom: 20px; }

/* Canvas Matrix Base */
#resonanceCanvas {
    background-color: #efefef;
    opacity: 0.8; 
}

/* --- HEADINGS --- */
h1, .h1, h2, .h2, h3, .h3 { 
    font-family: 'Inter', sans-serif !important; 
    color: #111111; 
    line-height: 1.2em; 
    margin-bottom: 10px;
}
@media (min-width: 786px) {
    h1, .h1, h2, .h2, h3, .h3 { margin-top: 10px; }
}

/* --- LINKS & LOGO --- */
a {
    color: #06b6d4;
    text-decoration: none;
    transition: color 0.2s;
}
a:hover {
    color: #f59e0b;
    text-decoration: none;
}

#logo { margin: 0 auto; padding: 0; }
#logo a { padding: 0px; color: #333; text-decoration: none; }
#logo a:hover { color: #06b6d4; }

header { padding: 10px 0; }

/* --- CONTENT BLOCKS --- */
.main-content p, .main-content ul { line-height: 150%; color: #444; }
.sidebar { margin-top: 30px; }
.sidebar p, .sidebar ul { line-height: 175%; color: #555; }
.teaser p { margin-top: 0; }
.teaser .thumbnail { margin-bottom: 5px; border: 1px solid #ddd; background: #fff; }

.thumbnail { max-width: 100% !important; height: auto; } 
.thumbnail img { width: 100%; }
a.thumbnail:hover { opacity: 0.9; border-color: #06b6d4; } 

.closure { margin-top: 50px; }

/* --- FOOTER --- */
.footer { color: #666; text-align: center; padding-top: 20px; }
.footer p { margin: 0; font-size: 13px; color: #666; }
.footer a { color: #06b6d4; }
.footer a:hover { color: #f59e0b; }

/* --- ALERTS & ERRORS --- */
.alert h3 { margin: 0 0 10px 0; color: #dc2626; }
.errors { color: #dc2626; }

/* --- NEWS --- */
.news { margin: 30px 0; border-bottom: 1px solid #ddd; padding-bottom: 20px; }
.news:first-child { margin-top: 20px; }
.news h2 a { color: #111; }
.news h2 a:hover { color: #06b6d4; }
.simple-news h2 a { color: #333; }

/* --- MOBILE MENU --- */
#menu-toggle-handle { 
    display: block; margin: 7px 0 1px 0; background: #fff; 
    padding: 10px 15px; color: #333; text-align: right; 
    border: 1px solid #ddd; 
}
#menu-toggle-handle .icon-bar { 
    display: block; margin: auto; width: 22px; height: 2px; 
    background-color: #06b6d4; border-radius: 1px; 
}
#menu-toggle-handle .icon-bar + .icon-bar { margin-top: 4px; }

@media (min-width: 992px) {
    .header .nav { margin-top: 30px; float: right; text-align: right; }
    .sidebar { margin-top: 0; }
}
@media screen and (max-width: 768px) {
    #nav { display: none; padding: 0; margin-top: 50px; }
    #nav ul { margin: 0; padding: 0; }
    #nav .nav-pills > li { text-align: center; float: none; background: #fff; border-bottom: 1px solid #ddd; }
    #nav .nav-pills > li > a { padding: 10px 15px; border-radius: 0; color: #333; }
    .main-content { text-align: left; }
}

        /* --- SEARCH FORM --- */
        .search-container {
            //max-width: 600px;
            margin: 20px auto;
            padding: 0 20px;
        }
        .search-form {
            display: flex;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
        }
        .search-input {
            flex-grow: 1;
            padding: 15px 20px;
            background: var(--card-bg);
            border: 2px solid var(--accent-cyan);
            border-right: none;
            color: var(--text-color);
            font-family: 'Courier New', Courier, monospace;
            font-size: 1.1em;
            outline: none;
            backdrop-filter: blur(5px);
            transition: all 0.3s;
        }
        .search-input:focus {
            background: #ffffff;
            box-shadow: inset 0 0 10px rgba(6, 182, 212, 0.1);
        }
        .search-btn {
            padding: 15px 30px;
            background: var(--accent-cyan);
            color: #fff;
            border: 2px solid var(--accent-cyan);
            font-family: 'Inter', sans-serif;
            font-weight: 900;
            font-size: 1.1em;
            text-transform: uppercase;
            cursor: pointer;
            transition: all 0.3s;
            letter-spacing: 1px;
        }
        .search-btn:hover {
            background: var(--text-color);
            border-color: var(--text-color);
        }

/* --- PILLS & NAV --- */
.nav-pills>li>a, .nav-pills>li.active>a, .nav-pills>li.active>a:hover {
    color: #333; background: #fff;
}
ul.nav-pills li, ul.nav-pills li a:hover {
    color: #06b6d4; background: #fff; border-radius: 4px;
}
.dropdown-menu { color: #333; background: #fff; border: 1px solid #ddd; }

hr {
    border-top: 1px dashed #ccc;
    height: 0px; clear: both;
    padding-top: 10px; margin-bottom: 20px; margin: auto;
}
hr.closure { border-top: 0px; }

/* --- BUTTONS & PANELS --- */
.btn-primary { background-color: #06b6d4; border-color: #06b6d4; color: #fff; }
.btn-primary:hover { background-color: #0891b2; border-color: #0891b2; color: #fff; }

.panel-heading {
    padding: 10px 15px;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    background-color: #ffffff;
    border: 1px solid #ddd;
    color: #333;
}

/* --- BREADCRUMB & PAGINATION --- */
.breadcrumb {
    background-color: transparent;
    color: #06b6d4;
    padding: 4px 4px;
    margin-bottom: 5px;
}
.breadcrumb .active { color: #111; }
.breadcrumb>li+li:before { color: #999; content: "»\00a0"; }

.pagination>.active>span {
    color: #fff; background-color: #06b6d4; border-color: #06b6d4;
}
.pagination>li>a, .pagination>li>span {
    color: #06b6d4; background-color: #fff; border: 1px solid #ddd;
}
.pagination>li>a:hover { color: #fff; background-color: #f59e0b; border-color: #f59e0b; }

/* --- MARKS & HIGHLIGHTS --- */
.marka, marka {
    padding: 4px 10px; color: #333; font-family: Dosis; font-size: 0.8em;
    display: inline-block; background-color: #ddd; margin: 20px 8% 0 5%;
}
.mark, mark {
    padding: 10px; color: #fff; font-family: Latobo; font-size: 1.4em;
    display: block; background: #06b6d4; margin: 0 2.5% 0 5%;
}
.markc, markc {
    padding: 4px 10px; color: #fff; font-family: Dosis; font-size: 0.8em;
    display: inline-block; background-color: #f59e0b; margin: 0 8% 20px 5%;
}
.mark-cc, mark-cc {
    padding: 0px; color: #06b6d4; font-family: Lato; background-color: transparent;
    text-decoration-line: underline; text-decoration-color: #06b6d4;
}
.markcd, markcd {
    padding: 4px 10px; color: #fff; font-family: Lato; background-color: #333;
}

.mark-cc>a { color: #06b6d4; }
.mark-cc>a:hover { color: #fff; background: #f59e0b; text-decoration: none; }
.markcd>a { color: #fff; }

/* --- GRIDS --- */
.grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    grid-gap: 2vw;
}

/* --- COOKIE CONSENT MODAL --- */
#cookie-consent-modal {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999;
    background-color: #ffffff; color: #333; padding: 1rem;
    border-top: 1px solid #ddd; box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
}
#cookie-consent-modal .container { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
@media (min-width: 768px) {
    #cookie-consent-modal .container { flex-direction: row; justify-content: space-between; }
}
#cookie-consent-modal button {
    padding: 0.6rem 1.2rem; border-radius: 0.5rem; font-weight: 600; border: none; cursor: pointer; transition: all 0.2s ease;
}
#accept-cookies { background-color: #06b6d4; color: #fff; }
#accept-cookies:hover { background-color: #0891b2; }
#decline-cookies { background-color: #e5e5e5; color: #555; }
#decline-cookies:hover { background-color: #d4d4d4; color: #111; }