body {
    font-family: "Segoe UI", Arial, sans-serif;
    text-align: center;
    background: #f3f3f3;
    margin: 0;
    padding: 20px;
}

.controls {
    margin-bottom: 15px;
}

.controls label {
    font-size: 18px;
    margin-right: 10px;
}

#difficultySelect, #themeSelect {
    padding: 8px 12px;
    font-size: 16px;
    border-radius: 6px;
    border: 1px solid #aaa;
    background: #fff;
    cursor: pointer;
}

#difficultySelect:hover, #themeSelect:hover {
    border-color: #555;
}

#gameBoard {
    display: inline-grid;
    gap: 2px;
    padding: 15px;
    background: #e0e0e0;
    border-radius: 10px;
    box-shadow: 0 0 8px rgba(0,0,0,0.1);
}

.cell {
    width: 32px;
    height: 32px;
    border-radius: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 18px;
    cursor: pointer;
    user-select: none;
    border: 2px outset #d1d1d1;
    background: #d1d1d1;
    transition: background-color 0.1s;
}

.cell:hover {
    background: #bcbcbc;
}

.revealed {
    background: #f0f0f0;
    border: 1px solid #ccc;
}

.mine {
    background: #ff4d4d;
    border: 1px solid #ff4d4d;
}

.cell.flagged {
    background: #ffe3e3;
    border: 2px outset #ffe3e3;
}

/* Number colors */
.revealed[data-count="1"] { color: #0000ff; }
.revealed[data-count="2"] { color: #008200; }
.revealed[data-count="3"] { color: #ff0000; }
.revealed[data-count="4"] { color: #000084; }
.revealed[data-count="5"] { color: #840000; }
.revealed[data-count="6"] { color: #008284; }
.revealed[data-count="7"] { color: #840084; }
.revealed[data-count="8"] { color: #757575; }

/* Dark theme */
body.dark {
    background: #111;
    color: #eee;
}

body.dark #gameBoard {
    background: #222;
    box-shadow: 0 0 8px rgba(255,255,255,0.1);
}

body.dark .cell {
    background: #333;
    border-color: #444;
}

body.dark .cell:hover {
    background: #444;
}

body.dark .revealed {
    background: #555;
    border-color: #666;
}

body.dark .mine {
    background: #ff3333;
}

body.dark .cell.flagged {
    background: #660000;
}

/* Neon theme */
body.neon {
    background: #020612;
    color: #0ff;
}

body.neon #gameBoard {
    background: #040b1e;
    border: 1px solid #00d0ff;
    box-shadow: 0 0 15px #00d0ff55;
}

body.neon .cell {
    background: #0a1b3a;
    border-color: #00baff;
    color: #00eaff;
}

body.neon .cell:hover {
    background: #113066;
}

body.neon .revealed {
    background: #02101f;
    border-color: #0099cc;
}

body.neon .mine {
    background: #ff0033;
}

body.neon .cell.flagged {
    background: #280022;
}

/* Retro theme */
body.retro {
    background: #303030;
    color: #fafafa;
    font-family: "Courier New", monospace;
}

body.retro #gameBoard {
    background: #111;
    border: 2px solid #555;
}

body.retro .cell {
    border-radius: 0;
    width: 28px;
    height: 28px;
    background: #444;
    font-size: 14px;
    border: 2px outset #555;
}

body.retro .revealed {
    background: #888;
}

body.retro .mine {
    background: #d22;
}

body.retro .cell.flagged {
    background: #aa0;
    color: black;
}

/* Message styles */

.message-box {
    position: fixed;
    top: 85%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.95);
    color: white;
    padding: 30px;
    border-radius: 15px;
    text-align: center;
    z-index: 1000;
    border: 3px solid;
    box-shadow: 0 0 30px rgba(255, 0, 0, 0.5);
    min-width: 300px;
    backdrop-filter: blur(5px);
}

.message-box.game-over {
    border-color: #ff4444;
    box-shadow: 0 0 30px rgba(255, 0, 0, 0.5);
}

.message-box.victory {
    border-color: #44ff44;
    box-shadow: 0 0 30px rgba(0, 255, 0, 0.5);
}

.message-box h2 {
    margin: 0 0 15px 0;
    font-size: 28px;
}

.message-box.game-over h2 {
    color: #ff4444;
}

.message-box.victory h2 {
    color: #44ff44;
}

.message-box p {
    margin: 0 0 20px 0;
    font-size: 18px;
}

.message-box button {
    background: #ff4444;
    color: white;
    border: none;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 16px;
    cursor: pointer;
    transition: background 0.3s;
}

.message-box button:hover {
    background: #ff6666;
}

.message-box.victory button {
    background: #44ff44;
    color: black;
}

.message-box.victory button:hover {
    background: #66ff66;
}

/* Theme-specific message styles */
body.dark .message-box {
    background: rgba(34, 34, 34, 0.95);
}

body.neon .message-box {
    background: rgba(4, 11, 30, 0.95);
    border: 3px solid #00d0ff;
    box-shadow: 0 0 30px #00d0ff55;
}

body.neon .message-box.game-over {
    border-color: #ff0033;
    box-shadow: 0 0 30px rgba(255, 0, 51, 0.7);
}

body.neon .message-box.victory {
    border-color: #00ff00;
    box-shadow: 0 0 30px rgba(0, 255, 0, 0.7);
}

body.neon .message-box.game-over h2 {
    color: #ff0033;
    text-shadow: 0 0 10px #ff0033;
}

body.neon .message-box.victory h2 {
    color: #00ff00;
    text-shadow: 0 0 10px #00ff00;
}

body.neon .message-box p {
    color: #00eaff;
    text-shadow: 0 0 5px #00eaff;
}

body.retro .message-box {
    background: rgba(17, 17, 17, 0.95);
    border-radius: 0;
    border: 3px solid #555;
    font-family: "Courier New", monospace;
}

body.retro .message-box.game-over {
    border-color: #d22;
}

body.retro .message-box.victory {
    border-color: #2d2;
}

body.retro .message-box h2 {
    font-size: 20px;
}

body.retro .message-box p {
    font-size: 14px;
}

body.retro .message-box button {
    border-radius: 0;
    padding: 8px 16px;
    font-size: 14px;
}

/* Portfolio link */
.portfolio-link {
    position: absolute;
    top: 20px;
    left: 20px;
}

.portfolio-link a {
    display: inline-block;
    padding: 10px 20px;
    background: #4a4a4a;
    color: white;
    text-decoration: none;
    border-radius: 6px;
    font-size: 16px;
    transition: background 0.3s;
}

.portfolio-link a:hover {
    background: #666;
}

/* Theme styles for portfolio link */
body.dark .portfolio-link a {
    background: #555;
}

body.dark .portfolio-link a:hover {
    background: #777;
}

body.neon .portfolio-link a {
    background: #00baff;
    color: #020612;
    box-shadow: 0 0 10px #00baff;
}

body.neon .portfolio-link a:hover {
    background: #00eaff;
    box-shadow: 0 0 15px #00eaff;
}

body.retro .portfolio-link a {
    background: #555;
    border-radius: 0;
    font-family: "Courier New", monospace;
}

body.retro .portfolio-link a:hover {
    background: #777;
}