* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #717171;
    background-image: url('/background-texture.png');
    min-height: 100vh;
}

/* New site wrapper to contain sidebars and main content */
.site-wrapper {
    display: flex;
    justify-content: center;
    gap: 15px;
    width: 100%;
    max-width: 1350px; /* Wider to accommodate sidebars */
    margin: 0 auto;
    padding: 0 10px;
}

.sidebar {
    width: 160px;
    flex-shrink: 0;
    padding-top: 20px; /* Align with main container's top margin */
}

.sidebar-ad {
    margin-bottom: 15px;
    border: 1px solid #999;
    background: #fff;
    padding: 4px;
    text-align: center;
}

.sidebar-ad-link {
    display: block;
    text-decoration: none;
}

.ad-title {
    display: block;
    background: #333;
    color: #fff;
    padding: 5px;
    font-size: 0.9rem;
    font-weight: bold;
    margin-bottom: 4px;
}

.sidebar-ad img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Main Container Box */
.main-container {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 40px); /* 100vh - (20px top margin + 20px bottom margin) */
    background-color: #ffffff; 
    overflow: hidden; 
    max-width: 980px;
    margin: 20px 0; /* Changed from auto to 0 for flexbox alignment */
    border: 1px solid #999;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
    transition: background-color 0.3s, border-color 0.3s;
    position: relative; /* Add for z-index context */
    z-index: 2; /* Add to be above pineapple */
}

/* Dark Mode Styles */
body.dark-mode {
    background-color: #2c2c2c;
    background-image: none;
    color: #e0e0e0;
}

body.dark-mode .main-container {
    background-color: #3a3a3a;
    border-color: #222;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.4);
}

body.dark-mode .top-header-wrapper {
    background: #222;
    background-image: linear-gradient(to bottom, #333, #1a1a1a);
    border-bottom: 1px solid #000;
}

body.dark-mode .main-navbar .nav-link {
    color: #ddd;
}

body.dark-mode .main-navbar .nav-link:hover {
    color: #ffd24d;
    border-bottom-color: #ffd24d;
}

body.dark-mode .trademark {
    color: #888;
}

body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode h4 {
    color: #f5f5f5;
    text-shadow: none;
}

body.dark-mode .homepage-hero,
body.dark-mode .game-info-section {
    background-color: #444;
    border-bottom-color: #555;
    border-color: #555;
}

body.dark-mode .featured-game {
    background: #555;
    border-color: #777;
}

body.dark-mode .featured-game-title {
    background: #222;
    color: #eee;
}

body.dark-mode .news-post-card,
body.dark-mode .settings-section,
body.dark-mode .moderation-section-card,
body.dark-mode .about-page,
body.dark-mode .about-section {
    background: #444;
    border-color: #555;
}

body.dark-mode .news-post-meta, 
body.dark-mode .settings-section p,
body.dark-mode .about-page p,
body.dark-mode .inspiration-card p {
    color: #bbb;
}

body.dark-mode .inspiration-card {
    background: #333;
    border-color: #444;
}

body.dark-mode .btn-secondary {
    background-color: #555;
    background-image: linear-gradient(to bottom, #666, #444);
    border-color: #777;
    border-bottom-color: #888;
    color: #eee;
}

body.dark-mode .btn-secondary:hover {
    background-color: #666;
    background-image: linear-gradient(to bottom, #777, #555);
}

body.dark-mode input,
body.dark-mode textarea,
body.dark-mode select {
    background-color: #555;
    border-color: #777;
    color: #eee;
}

body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder {
    color: #999;
}

body.dark-mode .modal-content {
    background: #3a3a3a;
    border-color: #555;
}

body.dark-mode .broadcast-bar {
    background: #5a522a;
    border-color: #7c703b;
    color: #fff;
}

body.dark-mode .broadcast-bar.warning {
    background: #664100;
    border-color: #a06700;
}

body.dark-mode .broadcast-bar.error {
    background: #8b1d13;
    border-color: #b8271a;
}

body.dark-mode .broadcast-bar.success {
    background: #1c5c1c;
    border-color: #2a8a2a;
}

body.dark-mode #banned-users-list th {
    background-color: #4f4f4f;
}

body.dark-mode #banned-users-list td, body.dark-mode #banned-users-list th {
    border: 1px solid #5a5a5a;
}

/* Add transition for dynamically inserted page content */
.content {
}