*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f7fa;min-height:100vh;color:#333}.app{max-width:800px;margin:0 auto;padding:20px;min-height:100vh;display:flex;flex-direction:column}.app__info-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:#fff;border-radius:10px;margin-bottom:14px;box-shadow:0 1px 3px #0000001a}.app__info-item{display:flex;flex-direction:column;align-items:center;position:relative}.app__info-label{font-size:13px;color:#999}.app__info-value{font-size:20px;font-weight:700;color:#333}.app__info-item button{padding:10px 16px;background:#e3f2fd;border:none;border-radius:8px;color:#1565c0;cursor:pointer;font-size:14px}.app__lang-btn{padding:10px 16px;background:#f5f5f5;border:none;border-radius:8px;color:#333;cursor:pointer;font-size:14px}.app__lang-menu{position:absolute;top:100%;left:50%;transform:translate(-50%);background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;margin-top:8px;padding:4px;z-index:10;min-width:120px}.app__lang-option{display:block;width:100%;padding:10px 16px;background:none;border:none;border-radius:6px;color:#333;cursor:pointer;font-size:14px;text-align:left}.app__lang-option:hover{background:#f5f5f5}.app__lang-option--active{background:#e3f2fd;color:#1565c0;font-weight:500}.app__game-area{display:flex;justify-content:center;align-items:flex-start;gap:12px;margin-bottom:12px}.app__board-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}.app__left-tools{display:flex;flex-direction:column;gap:8px;background:#fff;padding:12px 8px;border-radius:12px;box-shadow:0 1px 3px #0000001a}.app__tool-btn{padding:14px 18px;background:#f8f9fa;border:none;border-radius:10px;color:#495057;cursor:pointer;font-size:15px;font-weight:500;transition:all .2s ease}.app__tool-btn:hover:not(.app__tool-btn--disabled){background:#e9ecef;transform:translateY(-1px)}.app__tool-btn--disabled{opacity:.4;cursor:not-allowed}.app__tool-btn--hint{background:#fff3bf;color:#e67700}.app__tool-btn--hint:hover:not(.app__tool-btn--disabled){background:#ffe066}.app__tool-btn--active{background:#d3f9d8;color:#2b8a3e}.app__tool-btn--active:hover:not(.app__tool-btn--disabled){background:#b2f2bb}.app__tool-btn--print{background:#e7f5ff;color:#1971c2}.app__tool-btn--print:hover:not(.app__tool-btn--disabled){background:#a5d8ff}.app__right-diff{display:flex;flex-direction:column;gap:8px;background:#fff;padding:14px;border-radius:10px;box-shadow:0 1px 3px #0000001a}.app__diff-title{font-size:15px;color:#666;text-align:center;margin-bottom:6px;font-weight:500}.app__diff-btn{padding:14px 20px;background:#f8f9fa;border:none;border-radius:8px;cursor:pointer;font-size:15px;font-weight:500;color:#666;transition:all .2s}.app__diff-btn:hover{background:#e9ecef}.app__diff-btn--active{background:#1a1a1a;color:#fff}.app__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:100}.app__overlay-content{background:#fff;border-radius:16px;padding:32px;text-align:center;color:#1a1a2e;min-width:280px}.app__overlay-content--success{background:linear-gradient(135deg,#e8f5e9,#c8e6c9)}.app__overlay-icon{font-size:48px;margin-bottom:16px}.app__overlay-content h2{font-size:24px;margin-bottom:12px}.app__overlay-content p{color:#666;margin-bottom:20px}.app__overlay-actions{display:flex;flex-direction:column;gap:8px}.app__overlay-btn{padding:12px 24px;background:#f5f5f5;border:none;border-radius:8px;cursor:pointer;font-size:14px}.app__overlay-btn:hover{background:#e0e0e0}.app__overlay-btn--primary{background:#1976d2;color:#fff}.app__overlay-btn--primary:hover{background:#1565c0}.app__overlay-btn--success{background:#4caf50;color:#fff}.app__overlay-btn--success:hover{background:#388e3c}.app__celebration{font-size:36px;margin-bottom:16px}.app__result{display:flex;justify-content:center;gap:12px;margin-bottom:20px;color:#666}.sudoku-board{display:flex;flex-direction:column;background:#fff;border:3px solid #333;border-radius:8px;padding:4px;box-shadow:0 4px 16px #0000004d}.sudoku-board__row{display:flex;justify-content:center}.sudoku-board__row:nth-child(3),.sudoku-board__row:nth-child(6){border-bottom:2px solid #333;margin-bottom:2px;padding-bottom:2px}.sudoku-cell{display:flex;justify-content:center;align-items:center;width:56px;height:56px;border:1px solid #ddd;background:#fff;cursor:pointer;transition:background .15s ease;-webkit-user-select:none;user-select:none}.sudoku-cell:nth-child(3),.sudoku-cell:nth-child(6){border-right:2px solid #333}.sudoku-cell--given{background:#f8f9fa;font-weight:700;color:#333;cursor:default}.sudoku-cell--error{background:#ffebee;color:#c62828;animation:shake .3s ease}.sudoku-cell--highlighted{background:#e3f2fd;color:#1565c0}.sudoku-cell--selected{background:#bbdefb;border:2px solid #1976d2;box-shadow:inset 0 0 4px #1976d24d}.sudoku-cell--related{background:#fff8e1}.sudoku-cell__value{font-size:28px;font-weight:600}.sudoku-cell__notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:2px}.sudoku-cell__note{display:flex;justify-content:center;align-items:center;font-size:13px;color:#999}.sudoku-cell__note--active{color:#1976d2;font-weight:700}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.number-pad{display:flex;justify-content:center;gap:4px;background:#fff;padding:10px;border-radius:12px;box-shadow:0 1px 3px #0000001a;width:100%}.number-pad__key{display:flex;justify-content:center;align-items:center;flex:1;height:50px;background:#f8f9fa;border:none;border-radius:8px;cursor:pointer;font-size:24px;font-weight:700;color:#333;transition:all .15s ease}.number-pad__key:hover:not(.number-pad__key--complete){background:#e9ecef;transform:translateY(-1px)}.number-pad__key:active:not(.number-pad__key--complete){transform:translateY(0)}.number-pad__key--complete{background:#d3f9d8;color:#2b8a3e;opacity:.7;cursor:default}.number-pad__key--clear{background:#ffe3e3;color:#c92a2a}.stats-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:100;padding:24px}.stats-modal__content{background:#fff;border-radius:16px;padding:24px;text-align:center;color:#1a1a2e;max-width:300px;width:100%}.stats-modal__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.stats-modal__header h2{font-size:18px}.stats-modal__close{width:28px;height:28px;background:#f5f5f5;border:none;border-radius:6px;cursor:pointer;font-size:14px}.stats-modal__summary{display:flex;justify-content:space-around;margin-bottom:16px;padding:12px;background:#e3f2fd;border-radius:8px}.stats-modal__summary-item{display:flex;flex-direction:column;align-items:center}.stats-modal__summary-value{font-size:20px;font-weight:700;color:#1565c0}.stats-modal__summary-label{font-size:11px;color:#666}.stats-modal__times{display:flex;justify-content:space-around;margin-bottom:16px}.stats-modal__time-item{display:flex;flex-direction:column;align-items:center}.stats-modal__time-label{font-size:11px;color:#666}.stats-modal__time-value{font-size:16px;font-weight:700}.stats-modal__by-difficulty{margin-bottom:16px}.stats-modal__by-difficulty h3{font-size:13px;margin-bottom:10px}.stats-modal__difficulty-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.stats-modal__difficulty-item{display:flex;justify-content:space-between;padding:8px 10px;background:#f5f5f5;border-radius:6px}.stats-modal__difficulty-label{color:#333;font-size:13px}.stats-modal__difficulty-count{font-weight:700;color:#1976d2}.stats-modal__clear-btn{padding:8px 16px;background:#ffebee;border:none;border-radius:6px;color:#c62828;cursor:pointer;font-size:13px}@media print{body{background:#fff}.app{max-width:100%;padding:20px}.app__header,.app__info-bar,.app__left-tools,.app__right-diff,.number-pad,.app__overlay,.stats-modal,.app__footer{display:none!important}.app__game-area{display:flex;justify-content:center}.sudoku-board{width:450px;height:450px;margin:0 auto;border:3px solid #000;box-shadow:none;page-break-inside:avoid}.sudoku-cell{width:50px;height:50px;border:1px solid #000}.sudoku-cell:nth-child(3),.sudoku-cell:nth-child(6){border-right:2px solid #000}.sudoku-board__row:nth-child(3),.sudoku-board__row:nth-child(6){border-bottom:2px solid #000}.sudoku-cell--given{background:#f0f0f0;font-weight:700}.sudoku-cell--selected,.sudoku-cell--related,.sudoku-cell--highlighted{background:#fff}.sudoku-cell__value{font-size:28px;font-weight:700}.sudoku-cell__notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:2px}.sudoku-cell__note{font-size:14px;color:#333}.app__game-area:before{content:"数独王中王 - 请在纸上填写";display:block;text-align:center;font-size:24px;font-weight:700;margin-bottom:20px;color:#000}}@media (max-width: 600px){.app{padding:10px}.sudoku-cell{width:42px;height:42px}.sudoku-cell__value{font-size:20px}.sudoku-cell__note{font-size:10px}.number-pad__key{height:44px;font-size:20px}.app__tool-btn{padding:10px 12px;font-size:13px}.app__diff-btn{padding:10px 14px;font-size:13px}}
