
@font-face {
    font-family: 'ABCOracle-Light';
    src: url('ABCOracle-Light.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}
body {
    font-family: 'ABCOracle-Light', Arial, sans-serif;
    color: #fff;
    margin: 0;
    min-height: 100vh;
    transition: background 0.5s;
}

h1 {
    font-weight: 600;
    letter-spacing: 2px;
    text-align: center;
    margin-top: 32px;
    color: #fff;
}

#login-area, #game-area {
    max-width: 600px;
    margin: 32px auto;
    background: rgba(30, 41, 59, 0.95);
    border-radius: 18px;
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
    padding: 32px 24px;
    transition: box-shadow 0.3s;
}

input, button {
    font-family: inherit;
    font-size: 1rem;
    padding: 10px 18px;
    border-radius: 8px;
    border: none;
    margin: 8px 0;
    outline: none;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}

input {
    background: #1e293b;
    color: #fff;
    border: 1px solid #334155;
}

button {
    background: linear-gradient(90deg, #00c6ff 0%, #0072ff 100%);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
button:disabled {
    background: #334155;
    color: #888;
    cursor: not-allowed;
}
button:hover:not(:disabled) {
    background: linear-gradient(90deg, #0072ff 0%, #00c6ff 100%);
    color: #fff;
    box-shadow: 0 4px 16px rgba(0,0,0,0.18);
}

#user-info {
    margin-bottom: 12px;
    font-size: 1.1rem;
    color: #38bdf8;
    font-weight: 600;
}

#status {
    margin: 12px 0 8px 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: #fbbf24;
    min-height: 24px;
}

.board {
display: grid;
grid-template-columns: repeat(16, 32px);
grid-template-rows: repeat(16, 32px);
gap: 2px;
margin: 20px 0;
background: #1e293b;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0,0,0,0.12);
padding: 8px;
overflow-x: auto;
}

.cell {
    width: 32px;
    height: 32px;
    background: #334155;
    color: #fff;
    text-align: center;
    font-size: 1.2rem;
    font-weight: 600;
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.2s, transform 0.1s;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08);
    user-select: none;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cell:hover {
    background: #38bdf8;
    color: #0f172a;
    transform: scale(1.08);
}
.cell.X {
    color: #f472b6;
    text-shadow: 0 0 6px #f472b6aa;
    animation: pop 0.2s;
}
.cell.O {
    color: #38bdf8;
    text-shadow: 0 0 6px #38bdf8aa;
    animation: pop 0.2s;
}
@keyframes pop {
    0% { transform: scale(0.7);}
    80% { transform: scale(1.15);}
    100% { transform: scale(1);}
}

#available-matches button {
    margin-right: 8px;
    margin-bottom: 8px;
}

#leave-room {
    background: linear-gradient(90deg, #f43f5e 0%, #fbbf24 100%);
    color: #fff;
    margin-top: 12px;
    font-weight: 600;
}
#leave-room:hover {
    background: linear-gradient(90deg, #fbbf24 0%, #f43f5e 100%);
    color: #fff;
}




body.theme-pink {
    background: linear-gradient(135deg, #FF54D7 0%, #FF54D7 100%);
}
body.theme-blue {
    background: linear-gradient(135deg, #61C3FF 0%, #61C3FF 100%);
}
body.theme-green {
    background: linear-gradient(135deg, #B0FF6F 0%, #B0FF6F 100%);
}
body.theme-orange {
    background: linear-gradient(135deg, #FF955E 0%, #FF955E 100%);
}
body.theme-purple {
    background: linear-gradient(135deg, #B753FF 0%, #B753FF 100%);
}


.theme-pink .board { background: #ffb3ef; }
.theme-blue .board { background: #d6f0ff; }
.theme-green .board { background: #eaffd6; }
.theme-orange .board { background: #ffe2d1; }
.theme-purple .board { background: #e5caff; }


.theme-pink .cell:hover { background: #FF54D7; color: #fff; }
.theme-blue .cell:hover { background: #61C3FF; color: #fff; }
.theme-green .cell:hover { background: #B0FF6F; color: #222; }
.theme-orange .cell:hover { background: #FF955E; color: #fff; }
.theme-purple .cell:hover { background: #B753FF; color: #fff; }


.theme-pink .cell.X { color: #FF54D7; text-shadow: 0 0 6px #FF54D7aa; }

.board1 {
    width: 512px;
    height: 512px;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.board-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 12px;
}
.corner-decor {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 111px;
    height: auto;
    opacity: 0.85;
    z-index: 100;
    pointer-events: none;
    transition: opacity 0.3s;
}
body {
    font-family: Arial, sans-serif;
    background: linear-gradient(135deg, #61C3FF 0%, #FF54D7 100%);
    margin: 0;
    min-height: 100vh;
}
.controls {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 24px 0 12px 0;
}
input, button {
    font-family: inherit;
    font-size: 1rem;
    padding: 8px 16px;
    border-radius: 8px;
    border: none;
    outline: none;
    margin: 0 2px;
}
button {
    background: linear-gradient(90deg, #FF54D7 0%, #61C3FF 100%);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
    transition: background 0.2s;
}
button:hover:not(:disabled) {
    background: linear-gradient(90deg, #61C3FF 0%, #FF54D7 100%);
}
#user-info {
    text-align: center;
    font-size: 1.1rem;
    color: #ce308c;
    font-weight: 600;
    margin: 16px 0 0 0;
    text-shadow: 0 1px 4px #0004;
}
.status {
    text-align: center;
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 12px;
    color: #fbbf24;
}
#chessboard table {
    border-radius: 12px;
    box-shadow: 0 2px 16px 0 #0002;
    margin: 24px auto;
    background: #1e293b;
    border-collapse: collapse;
}
#chessboard td {
    width: 48px;
    height: 48px;
    text-align: center;
    font-size: 32px;
    font-weight: bold;
    cursor: pointer;
    user-select: none;
    border: 1px solid #a21272;
    transition: background 0.2s, outline 0.2s;
}
#chessboard td:hover {
    background: #38bdf8;
    color: #0f172a;
    outline: 2px solid #38bdf8;
}
#chessboard td.black-piece {
    color: #61C3FF; /* đen */
    text-shadow: 0 0 2px #61c3ff, 0 0 6px #61c3ff;
}
#chessboard td.white-piece {
    color: #FF54D7; /* trắng */
    text-shadow: 0 0 2px #a21272, 0 0 6px #a21272;
}
.selected {
    outline: 3px solid #fbbf24 !important;
}
#promotion-choices button {
    font-size: 2rem;
    margin: 0 12px;
    padding: 8px 16px;
    border-radius: 8px;
    border: 2px solid #a21272;
    background: #ffecfa;
    cursor: pointer;
    transition: background 0.2s;
}
#promotion-choices button:hover {
    background: #61c3ff;
    color: #fff;
}
#menu-xo {
    text-decoration: none;
}
#menu-xo button {
    text-decoration: none;
}
#prove-leaderboard th {
    background: #a21272;
    color: #fff;
}
#prove-leaderboard td {
    color: #222;
}
