/* 经典扫雷 - 手机竖屏优先 + 电脑端适配 */ :root{ --bg:#e8f5e8; --panel:#c8e6c9; --accent:#2e7d32; --accent-2:#388e3c; --text:#1b5e20; --muted:#4caf50; --danger:#d32f2f; --success:#22c55e; --warn:#f57c00; --cell:#f1f8e9; --cell-hover:#dcedc8; --flag:#4caf50; } *{box-sizing:border-box} html,body{height:100%;} body{margin:0;background:linear-gradient(135deg, #a8e6cf 0%, #dcedc8 50%, #f1f8e9 100%);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"PingFang SC","Microsoft Yahei",sans-serif;-webkit-tap-highlight-color:transparent} .app{min-height:100dvh;display:flex;flex-direction:column;gap:12px;padding:12px;} .header{display:flex;flex-direction:column;gap:10px;background:linear-gradient(135deg, #c8e6c9 0%, #e8f5e8 100%);border:1px solid rgba(46, 125, 50, 0.2);border-radius:14px;padding:12px 12px 10px;backdrop-filter:blur(6px);box-shadow:0 4px 8px rgba(46, 125, 50, 0.1)} .title{margin:0;font-size:20px;letter-spacing:1px;color:#1b5e20;text-shadow:1px 1px 2px rgba(255,255,255,0.5)} .hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:center} .hud-item{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg, #a5d6a7 0%, #c8e6c9 100%);border:1px solid rgba(46, 125, 50, 0.2);border-radius:10px;padding:8px 6px;box-shadow:0 2px 4px rgba(46, 125, 50, 0.1)} .hud-item .label{font-size:12px;color:#2e7d32} .hud-item .value{font-size:18px;font-weight:700;color:#1b5e20} .btn{appearance:none;border:none;background:linear-gradient(135deg, #81c784 0%, #a5d6a7 100%);color:#fff;padding:10px 12px;border-radius:10px;cursor:pointer;outline:none;transition:.15s transform,.15s background;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(46, 125, 50, 0.2)} .btn:active{transform:scale(.98)} .btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff} .btn.primary:active{filter:brightness(.95)} .main{display:flex;flex-direction:column;gap:12px} .board-wrapper{display:flex;justify-content:center;align-items:center} .board{display:grid;gap:4px;touch-action:manipulation;user-select:none;background:linear-gradient(135deg, #c8e6c9 0%, #e8f5e8 100%);border:1px solid rgba(46, 125, 50, 0.2);border-radius:12px;padding:6px;width:100%;max-width:92vw;box-shadow:0 4px 8px rgba(46, 125, 50, 0.1)} .cell{display:grid;place-items:center;background:var(--cell);border-radius:8px;border:1px solid rgba(46, 125, 50, 0.15);font-weight:700;color:#4caf50;box-shadow:inset 0 -1px 0 rgba(255,255,255,0.3);aspect-ratio:1/1;font-size:clamp(12px, 2.2vw, 18px)} .cell.revealed{background:#e8f5e8;color:#2e7d32} .cell:hover{background:var(--cell-hover)} .cell.flag::after{content:"🚩"} .cell.mine.revealed{background:#ffcdd2;color:#d32f2f} .cell.mine.revealed::after{content:"💣"} .cell[data-n="1"].revealed{color:#1976d2} .cell[data-n="2"].revealed{color:#388e3c} .cell[data-n="3"].revealed{color:#d32f2f} .cell[data-n="4"].revealed{color:#7b1fa2} .cell[data-n="5"].revealed{color:#f57c00} .cell[data-n="6"].revealed{color:#00796b} .cell[data-n="7"].revealed{color:#c2185b} .cell[data-n="8"].revealed{color:#455a64} .tips{font-size:12px;color:var(--muted);text-align:center} .toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:linear-gradient(135deg, #c8e6c9 0%, #e8f5e8 100%);border:1px solid rgba(46, 125, 50, 0.2);padding:10px 14px;border-radius:10px;color:#1b5e20;box-shadow:0 4px 8px rgba(46, 125, 50, 0.2)} .modal-overlay{position:fixed;inset:0;background:rgba(46, 125, 50, 0.3);display:grid;place-items:center;padding:14px} .modal{width:min(520px,92vw);background:linear-gradient(135deg, #e8f5e8 0%, #f1f8e9 100%);border:1px solid rgba(46, 125, 50, 0.2);border-radius:14px;padding:16px 14px;box-shadow:0 8px 16px rgba(46, 125, 50, 0.2)} .modal h2{margin:4px 0 8px;font-size:20px;color:#1b5e20} .stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 14px} .stats .card{background:linear-gradient(135deg, #c8e6c9 0%, #e8f5e8 100%);border:1px solid rgba(46, 125, 50, 0.2);border-radius:10px;padding:10px;box-shadow:0 2px 4px rgba(46, 125, 50, 0.1)} .stats .card .k{font-size:12px;color:#2e7d32} .stats .card .v{font-size:18px;font-weight:700;color:#1b5e20} .modal-actions{display:flex;gap:10px;justify-content:flex-end} /* 响应式:手机竖屏优先 */ @media (min-width: 480px){ .title{font-size:22px} } @media (min-width: 640px){ .app{padding:18px} .hud{grid-template-columns:repeat(5,minmax(0,1fr))} } @media (min-width: 1024px){ .board{ max-width: 420px; } .header{ padding:10px 10px 8px; } .hud-item{ padding:6px 4px; } .hud-item .value{ font-size:16px; } .title{ font-size:18px; } } @media (orientation: landscape) and (max-width: 900px){ .board{transform:scale(.9)} }