* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
body {
    background-color: #000000;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    color: #fff;
}

#app {
    padding: 2rem
}

.container {
    width: 960px;
    margin: 0 auto;
    background-color: #222;
    border-radius: 10px;
    padding: 20px;
    margin-top: 20px;
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.1);
}

h1 {
    font-size: 3rem;
    font-weight: 400;
    text-shadow: 2px 5px 20px #0f3460;
}
header {
    margin-bottom: 2rem;
}
header p {
    color: #aaa;
    font-size: .8rem;
}
a {
    color: #4cc9ff;
}
a:hover {
    color: #8bdfff;
}
.text-center {
    text-align: center;
}
.mb-4 {
    margin-bottom: 1rem;
}
.mt-4 {
    margin-top: 1rem;
}
.card {
    background-color: #2a2a2a;
    border: 2px solid #333;
    padding: 10px;
    color: #eee;
    border-radius: 5px;
}
.card-play {
    background-color: #252525;
    display: flex;
    align-items: center;
    justify-content: center;
    position:relative;
    min-height: 600px; /* 保证有足够高度 */
}

/* --- 游戏开始/覆盖层样式 --- */
.choose-color {
    position: absolute;
    width: 100%;
    height: 100%;
    padding: 0 3rem;
    z-index: 3;
    display: flex; /* 改用 flex 布局 */
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: rgba(0,0,0,0.85); /* 稍微加深背景遮罩 */
}

.choose-color h2 {
    font-size: 3rem;
    text-align: center;
    margin-bottom: 2rem; 
    margin-top: 0;
}

/* --- 难度选择器样式 --- */
.difficulty-selector {
    display: flex;
    justify-content: center;
    gap: 30px; /* 间距拉大 */
    margin-bottom: 4rem; /* 距离下方按钮远一点 */
    background: #333;
    padding: 15px 30px;
    border-radius: 50px;
    border: 2px solid #444;
}

.difficulty-selector label {
    cursor: pointer;
    color: #ccc;
    font-size: 1.2rem; /* 字体加大 */
    display: flex;
    align-items: center;
    gap: 10px;
    transition: color 0.3s;
    padding: 5px 10px; /* 增加点击区域 */
}

.difficulty-selector label:hover {
    color: #fff;
    background: rgba(255,255,255,0.05);
    border-radius: 10px;
}

.difficulty-selector input[type="radio"] {
    transform: scale(1.5); /* 单选框放大 */
    accent-color: #27ae60;
    cursor: pointer;
}

.difficulty-selector input[type="radio"]:checked + span {
    color: #fff;
    font-weight: bold;
}

/* --- 颜色选择按钮区域 --- */
.choose-color .row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
    justify-content: center;
    gap: 3rem;
    width: 100%; /* 确保占满宽度 */
}

.choose-color [class*='col-'] {
    padding: 0;
    flex: 0 0 auto;
    width: auto;
}

.btn {
    padding: .8rem; /* 默认按钮稍微大一点 */
    width: 100%;
    border-radius: .3rem;
    border: none;
    transition: all .3s ease;
    cursor: pointer;
    border: 2px solid #444;
    font-size: 1rem;
}

.btn:hover {
    background-color: #444;
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(255, 255, 255, 0.1);
}

/* 颜色选择大按钮 */
.btn-color {
    padding: 2rem 4rem; /* 保持大尺寸 */
    font-size: 2rem; /* 大字体 */
    min-width: 220px;
    border-radius: 1rem;
}

.btn-white {
    color: #eee;
    background-color: #444;
    border: 3px solid #eee;
}
.btn-white:hover {
    color: #222;
    background-color: #eee;
    border: 3px solid #eee;
}

.btn-black {
    color: #222;
    background-color: #eee; /* 改为浅色背景深色字，更像黑棋子在浅色背景上 */
    border: 3px solid #222;
    background: #aaa;
}
/* 修正：黑棋按钮应该是黑底白字，或者模拟棋子 */
.btn-black {
    color: #eee;
    background-color: #111;
    border: 3px solid #555;
}
.btn-black:hover {
    background-color: #000;
    border-color: #777;
}

.btn-primary {
    color: #fff;
    background-color: #5A8DEE;
    border-color: #5A8DEE;
    font-size: 1.1rem;
    padding: 1rem;
}
.btn-primary:hover {
    background-color: #4876d6;
}

/* --- 画布 --- */
#canvas.blur {
    filter: blur(20px);
    pointer-events: none;
    opacity: .4;
    background-color: #111;
}

/* --- 通用布局 --- */
.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
}

hr {
    border-color: #444;
    margin: 1.5rem 0;
}

[class*='col-'] {
    padding: 0 10px;
}

table tr td {
    padding: .5rem .5rem;
    font-size: 1.1rem;
}

/* --- 提示框样式 (整合进来) --- */
.game-message {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
    backdrop-filter: blur(4px);
    transition: opacity 0.3s;
}

.game-message.hidden {
    opacity: 0;
    pointer-events: none;
}

.msg-content {
    background: #222;
    padding: 40px 60px;
    border-radius: 15px;
    text-align: center;
    box-shadow: 0 20px 50px rgba(0,0,0,0.8);
    border: 2px solid #444;
    color: white;
    transform: scale(1);
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    min-width: 400px;
}

.game-message.hidden .msg-content {
    transform: scale(0.8);
}

#msg-title {
    margin: 0 0 15px 0;
    font-size: 36px;
    color: #4cc9ff;
    text-transform: uppercase;
    letter-spacing: 2px;
}

#msg-text {
    font-size: 1.5rem;
    color: #ccc;
    margin-bottom: 30px;
}

#msg-btn {
    margin-top: 10px;
    padding: 12px 40px;
    background: #5A8DEE;
    border: none;
    color: white;
    border-radius: 5px;
    cursor: pointer;
    font-size: 18px;
    transition: background 0.3s;
}
#msg-btn:hover { background: #4876d6; }

/* --- 栅格系统 --- */
.col-1 { flex: none; width: calc(100% * 1 / 12) }
.col-2 { flex: none; width: calc(100% * 2 / 12) }
.col-3 { flex: none; width: calc(100% * 3 / 12) }
.col-4 { flex: none; width: calc(100% * 4 / 12) }
.col-5 { flex: none; width: calc(100% * 5 / 12) }
.col-6 { flex: none; width: calc(100% * 6 / 12) }
.col-7 { flex: none; width: calc(100% * 7 / 12) }
.col-8 { flex: none; width: calc(100% * 8 / 12) }
.col-9 { flex: none; width: calc(100% * 9 / 12) }
.col-10 { flex: none; width: calc(100% * 10 / 12) }
.col-11 { flex: none; width: calc(100% * 11 / 12) }
.col-12 { flex: none; width: calc(100% * 12 / 12) }
