:root {
    --bg-primary:#f7f8fc;
    --bg-secondary:#ffffff;
    --bg-tertiary:#f1f3fa;
    --text-primary:#003e92;
    --text-secondary:#5c6b8a;
    --text-muted:#7b8a9e;
    --border-color:#d6d9e6;
    --shadow-color:rgba(0,0,0,0.08);
    --highlight-bg:#dde6f8;
    --blue-primary:#2a64d8;
    --blue-secondary:#1a4dc1;
    --overlay-bg:rgba(247,248,252,0.95);

}

body {
    font-family:'Hauss','Roboto',sans-serif;

}

@font-face {
    font-display:swap;
    font-family:Hauss-book;
    font-style:normal;
    font-weight:400;
    src:url(fonts/ALS_Hauss_Book.82e9a4be.otf) format("opentype"),url(fonts/ALS_Hauss_Book.02ca3b80.ttf) format("truetype");

}

@font-face {
    font-display:swap;
    font-family:Hauss;
    font-style:normal;
    font-weight:400;
    src:url(fonts/ALS_Hauss_Regular.1ec47ade.otf) format("opentype"),url(fonts/ALS_Hauss_Regular.e73affe6.ttf) format("truetype");

}

@font-face {
    font-display:swap;
    font-family:Hauss;
    font-style:normal;
    font-weight:500;
    src:url(fonts/ALS_Hauss_Medium.457ccec7.otf) format("opentype"),url(fonts/ALS_Hauss_Medium.2bdc2991.ttf) format("truetype");

}

@font-face {
    font-display:swap;
    font-family:Hauss;
    font-style:normal;
    font-weight:700;
    src:url(fonts/ALS_Hauss_Bold.5b00b639.otf) format("opentype"),url(fonts/ALS_Hauss_Bold.961a02bd.ttf) format("truetype");

}

@font-face {
    font-display:swap;
    font-family:Hauss;
    font-style:normal;
    font-weight:300;
    src:url(fonts/ALS_Hauss_Light.d14ec885.otf) format("opentype"),url(fonts/ALS_Hauss_Light.275bfb4a.ttf) format("truetype");

}

.dark {
    --bg-primary:#111827;
    --bg-secondary:#1f2937;
    --bg-tertiary:#374151;
    --text-primary:#f9fafb;
    --text-secondary:#d1d5db;
    --text-muted:#9ca3af;
    --border-color:#374151;
    --shadow-color:rgba(0,0,0,0.3);
    --highlight-bg:#374151;
    --blue-primary:#60a5fa;
    --blue-secondary:#3b82f6;
    --overlay-bg:rgba(31,41,55,0.95);

}

.tab-btn {
    text-decoration:none;
    cursor:pointer;
    font-weight:500;
    transition:all 0.2s;

}

.tab-btn:hover {
    color:var(--text-secondary);

}

.tab-btn.active {
    color:var(--blue-primary) !important;

}

.mode-tabs {
    display:flex;
    flex-direction:column;
    gap:8px;

}

.main-grid {
    display:grid;
    grid-template-columns:1fr auto;
    gap:24px;
    align-items:start;

}

.game-container {
    width:100%;
    max-width:780px;

}

.game-wrapper {
    width:100%;
    border-radius:12px;
    padding:10px;
    display:flex;
    flex-direction:column;
    position:relative;

}

.sidebar-container {
    width:280px;
    flex-shrink:0;

}

.pause-overlay {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:var(--overlay-bg);
    backdrop-filter:blur(10px);
    border-radius:12px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    z-index:100;
    transition:all 0.3s ease;

}

.pause-overlay.hidden {
    opacity:0;
    pointer-events:none;

}

.pause-content {
    text-align:center;
    padding:40px;

}

.pause-icon {
    font-size:64px;
    color:var(--blue-primary);
    margin-bottom:20px;

}

.pause-title {
    font-size:28px;
    font-weight:bold;
    color:var(--text-primary);
    margin-bottom:10px;

}

.pause-subtitle {
    font-size:16px;
    color:var(--text-muted);
    margin-bottom:30px;

}

.resume-btn {
    background:var(--blue-primary);
    color:white;
    border:none;
    padding:12px 30px;
    border-radius:8px;
    font-size:16px;
    font-weight:500;
    cursor:pointer;
    transition:all 0.2s;
    box-shadow:0 4px 12px rgba(66,133,244,0.3);

}

.resume-btn:hover {
    background:var(--blue-secondary);
    transform:translateY(-1px);
    box-shadow:0 6px 16px rgba(66,133,244,0.4);

}

.difficulty-section-container {
    margin-bottom:16px;

}

.difficulty-section {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;

}

.difficulty-label {
    font-weight:700;
    color:var(--text-secondary);
    font-size:14px;

}

.difficulty-buttons {
    display:flex;
    gap:16px;
    flex:1;

}

.difficulty-btn {
    padding:0;
    background:transparent;
    border:none;
    color:var(--text-secondary);
    cursor:pointer;
    font-size:14px;
    font-weight:700;
    transition:color 0.2s;

}

.difficulty-btn:hover {
    color:var(--blue-primary);

}

.difficulty-btn.active {
    color:var(--blue-primary);
    font-weight:700;

}

.score-display {
    font-size:32px;
    font-weight:400;
    color:var(--text-primary);
    text-align:center;
    padding:8px 16px;
    background:var(--highlight-bg);
    border-radius:8px;
    min-width:80px;
    transition:all 0.3s ease;

}

.mobile-new-game-btn {
    display:none;

}

.game-area {
    display:flex;
    gap:40px;
    height:100%;
    align-items:flex-start;
    font-family:Hauss,sans-serif;
    font-weight:300;

}

.game-board {
    display:grid;
    grid-template-columns:repeat(9,46px);
    grid-template-rows:repeat(9,46px);
    gap:1px;
    width:426px;
    height:426px;
    background:#ccc;
    border:2px solid #2c3e50;
    border-radius:4px;

}
.game-board {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    grid-template-rows: repeat(9, 1fr);
    gap: 1px;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #ccc;
    border: 2px solid #2c3e50;
    border-radius: 4px;
}
.game-cell {
    width:46px;
    height:46px;
    font-family:Hauss,sans-serif;
    font-weight:100;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#ffffff;
    color:#2c3e50;
    font-size:26px !important;
    border:none;
    cursor:pointer;
    position:relative;
    box-sizing:border-box;

}
.game-cell {
    width: 100%;
    height: 100%;
    font-family: Hauss, sans-serif;
    font-weight: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    color: #2c3e50;
    font-size: 26px !important;
    border: none;
    cursor: pointer;
    position: relative;
    box-sizing: border-box;
}
.game-cell:hover {
    background:#f8f9fa !important;
    z-index:5;

}

.game-cell.selected:not(.conflict) {
    background:#f8f9fa !important;
    color:#2c3e50 !important;
    font-weight:500 !important;
    box-shadow:0 0 0 2px rgba(66,133,244,0.3) !important;
    z-index:10;
    position:relative;

}

.game-cell.highlighted {
    background:#e3f2fd !important;
    color:#333 !important;

}

.game-cell.notes-grid {
    width: 100%;
    height: 100%;
    font-size: 0.75rem !important;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-weight: 300;
    padding: 0;
    margin: 0;
    white-space: pre-line; /* QUAN TRỌNG: để xuống dòng bằng \n */
    line-height: 1.2;
}

.dark .game-cell.highlighted {
    background:#4a5568 !important;
    color:#f7fafc !important;

}

.game-cell.same-number {
    background:#dbeafe !important;
    color:#1E3A8A !important;
    font-weight:300 !important;

}

.dark .game-cell.same-number {
    background:#4ade80 !important;
    color:#1a202c !important;
    font-weight:300 !important;

}

.game-cell.row-highlighted {
    background:#bbdefb !important;
    color:#333 !important;

}

.game-cell.col-highlighted {
    background:#bbdefb !important;
    color:#333 !important;

}

.game-cell.block-highlighted {
    background:#bbdefb !important;
    color:#333 !important;

}

.dark .game-cell.row-highlighted {
    background:#4a5568 !important;
    color:#e2e8f0 !important;

}

.dark .game-cell.col-highlighted {
    background:#4a5568 !important;
    color:#e2e8f0 !important;

}

.dark .game-cell.block-highlighted {
    background:#4a5568 !important;
    color:#e2e8f0 !important;

}

.game-cell.highlighted.same-number {
    background:#a5d6a7 !important;
    color:#1b5e20 !important;

}

.game-cell.row-highlighted.same-number,
.game-cell.col-highlighted.same-number,
.game-cell.block-highlighted.same-number {
    background:#a5d6a7 !important;
    color:#1b5e20 !important;

}

.dark .game-cell.highlighted.same-number {
    background:#68d391 !important;
    color:#1a202c !important;

}

.dark .game-cell.row-highlighted.same-number,
.dark .game-cell.col-highlighted.same-number,
.dark .game-cell.block-highlighted.same-number {
    background:#68d391 !important;
    color:#1a202c !important;

}

.game-cell.selected:not(.conflict) {
    background:#cbe3fa !important;
    color:#2c3e50 !important;
    z-index:10 !important;

}

.game-cell.conflict.given,
.game-cell.selected.conflict.given,
.game-cell.highlighted.conflict.given,
.game-cell.same-number.conflict,
.game-cell.row-highlighted.conflict,
.game-cell.col-highlighted.conflict,
.game-cell.block-highlighted.conflict {
    background:#ffcdd2 !important;
    color:#000000 !important;
    z-index:15 !important;

}

.game-cell.conflict:not(.given) {
    background:#ffcdd2 !important;
    color:#d32f2f !important;
    z-index:15 !important;

}

.auto-check-disabled .game-cell.conflict.given,
.auto-check-disabled .game-cell.selected.conflict.given,
.auto-check-disabled .game-cell.highlighted.conflict.given,
.auto-check-disabled .game-cell.same-number.conflict,
.auto-check-disabled .game-cell.row-highlighted.conflict,
.auto-check-disabled .game-cell.col-highlighted.conflict,
.auto-check-disabled .game-cell.block-highlighted.conflict,
.auto-check-disabled .game-cell.conflict:not(.given) {
    background:white !important;
    color:#333 !important;
    animation:none !important;
    z-index:auto !important;

}

.game-cell.given {
    background:#e7edf5;
    color:#2c3e50;
    font-family:Hauss,sans-serif;
    font-weight:300;
    font-size:26px;

}

@keyframes shake {
    0%,
    100% {
        transform:translateX(0);
    
    }
    25% {
        transform:translateX(-2px);
    
    }
    75% {
        transform:translateX(2px);
    
    }
}

.game-cell:nth-child(3n):not(:nth-child(9n)) {
    border-right:2px solid #333 !important;

}

.game-cell:nth-child(n+19):nth-child(-n+27),
.game-cell:nth-child(n+46):nth-child(-n+54) {
    border-bottom:2px solid #333 !important;

}

.right-panel {
    display:flex;
    flex-direction:column;
    gap:20px;
    width:290px;
    flex-shrink:0;

}

.stats-section {
    display:flex;
    flex-direction:row;
    gap:8px;
    justify-content:space-between;

}

.stat-item {
    display:flex;
    align-items:center;
    gap:13px;
    padding:0 10px;
    background:var(--highlight-bg);
    border-radius:8px;
    min-height:50px;
    width:50%;

}

.trophy-icon {
    font-size:20px;
    width:24px;

}

.stat-content {
    flex:1;

}

.stat-label {
    font-size:12px;
    color:var(--text-secondary);
    margin-bottom:2px;

}

.stat-value {
    font-size:16px;
    font-weight:400;
    color:var(--text-primary);

}

.pause-btn {
    background:var(--highlight-bg);
    border:1px solid var(--border-color);
    border-radius:6px;
    width:32px;
    height:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    font-size:14px;
    transition:all 0.2s;
    color:var(--text-secondary);

}

.pause-btn:hover {
    background:var(--bg-tertiary);
    border-color:var(--text-secondary);

}

.pause-btn.paused {
    background:#4285f4;
    color:white;

}

.pause-btn.paused:hover {
    background:#3367d6;

}

.controls {
    display:flex;
    gap:10px;
    justify-content:space-between;

}

.control-btn {
    width:50px;
    height:50px;
    background:var(--bg-secondary);
    border:1px solid var(--border-color);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:all 0.2s;
    box-shadow:0 1px 3px var(--shadow-color);
    position:relative;
    color:var(--text-primary);

}

.control-btn:hover {
    border-color:var(--blue-primary);
    background:var(--bg-tertiary);
    transform:translateY(-1px);
    box-shadow:0 2px 6px var(--shadow-color);

}

.control-btn.active {
    background:transparent;
    color:var(--blue-primary);
    border:2px solid var(--blue-primary);

}

.control-btn.disabled {
    opacity:0.5;
    cursor:not-allowed;
    background:var(--highlight-bg);
    border-color:var(--border-color);
    border-radius:50%;

}

.control-btn.disabled:hover {
    background:var(--highlight-bg);
    border-color:var(--border-color);
    transform:none;
    box-shadow:none;

}

.control-btn svg,
.control-btn img {
    width:24px;
    height:24px;
    display:block;
    fill:#325aaf;

}

.control-btn.active svg,
.control-btn.active img {
    fill:white;

}

.control-btn.disabled svg,
.control-btn.disabled img {
    fill:#b0b8c9;

}

#notesBtn.off svg {
    fill:#b0b8c9;

}

#autoCheckBtn {
    display:none !important;

}

#hintBtn {
    position:relative;

}

#hintBtn .hint-badge {
    position:absolute;
    top:-6px;
    right:-6px;
    background-color:#1f57c3;
    color:white;
    font-size:12px;
    font-weight:bold;
    width:20px;
    height:20px;
    line-height:20px;
    border-radius:50%;
    text-align:center;
    box-shadow:0 1px 3px rgba(0,0,0,0.2);
    z-index:2;

}

.control-icon {
    font-size:18px;
    color:blue;

}

.numpad {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;

}

.num-btn {
    background:#eef2f9;
    border:none;
    border-radius:6px;
    box-sizing:border-box;
    color:#325aaf;
    cursor:pointer;
    text-align:center;
    font-family:Hauss,sans-serif;
    font-size:28px;
    font-weight:400;
    height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background-color 0.2s ease,transform 0.1s;

}

.num-btn:hover {
    background-color:#dbe7f7;

}

.num-btn:active {
    background-color:#cbdcf6;
    transform:scale(0.98);

}

.num-btn:before {
    display:none !important;

}

.new-game-btn {
    width:100%;
    height:44px;
    background:var(--blue-primary);
    color:white;
    border:none;
    border-radius:8px;
    font-size:14px;
    font-weight:500;
    cursor:pointer;
    transition:all 0.2s;
    box-shadow:0 2px 8px rgba(66,133,244,0.3);

}

.new-game-btn:hover {
    background:var(--blue-secondary);
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(66,133,244,0.4);

}

.killer-mode .game-cell {
    position:relative;

}

.killer-mode .game-cell.given {
    background:#e7edf5;
    color:#2c3e50;
    font-family:Hauss,sans-serif;
    font-weight:400;

}

.killer-mode .game-cell.given.selected {
    background:#cbe3fa !important;
    color:#2c3e50 !important;

}

.killer-mode .game-cell.given.highlighted {
    background:#ffe0b2;

}

.killer-mode .game-cell.given.same-number {
    background:#ffcc02;
    color:#333;

}

.killer-mode .game-cell.cage-border-top {
    border-top:1px dashed #1E3A8A;

}

.killer-mode .game-cell.cage-border-right {
    border-right:1px dashed #1E3A8A;

}

.killer-mode .game-cell.cage-border-bottom {
    border-bottom:1px dashed #1E3A8A;

}

.killer-mode .game-cell.cage-border-left {
    border-left:1px dashed #1E3A8A;

}

.cage-sum {
    position:absolute;
    top:0;
    left:0;
    font-size:10px;
    font-weight:bold;
    color:#1E3A8A;
    background:none;
    padding:0;
    margin:0;
    line-height:1;
    border-radius:0;
    z-index:2;
    pointer-events:none;

}

.killer-mode .game-cell.cage-error {
    background:#ffebee !important;
    color:#d32f2f !important;

}

.killer-mode .game-cell.cage-complete {
    background:#e3f2fd !important;

}

.smart-hint_carousel_name {
    font-size:18px;
    font-weight:bold;
    color:#325aaf;
    margin-bottom:15px;

}

.smart-hint_carousel_visual {
    margin:15px 0;
    display:flex;
    justify-content:center;

}

.mini-board {
    display:grid;
    grid-template-columns:repeat(9,25px);
    grid-template-rows:repeat(9,25px);
    gap:1px;
    background:#333;
    border:2px solid #333;
    margin:0 auto;
    padding:2px;

}

.mini-cell {
    background:white;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:10px;
    font-weight:bold;
    border:none;
    position:relative;

}

.mini-cell:nth-child(3n):not(:nth-child(9n)) {
    border-right:2px solid #333 !important;

}

.mini-cell:nth-child(n+19):nth-child(-n+27),
.mini-cell:nth-child(n+46):nth-child(-n+54) {
    border-bottom:2px solid #333 !important;

}

.mini-cell.hint-target {
    background:#ff6b6b;
    color:white;
    animation:pulse 1s infinite;

}

.mini-cell.related {
    background:#ffe066;

}

.mini-cell.given {
    background:#f0f0f0;
    color:#333;

}

@keyframes pulse {
    0%,
    100% {
        transform:scale(1);
    
    }
    50% {
        transform:scale(1.1);
    
    }
}

.smart-hint_carousel_desc {
    font-size:12px;
    color:#666;
    line-height:1.4;
    margin:10px 0;
    text-align:left;
    background:#f8f9fa;
    padding:10px;
    border-radius:8px;

}

.hint-cell-info {
    background:#e3f2fd;
    padding:10px;
    border-radius:8px;
    margin:10px 0;
    font-size:13px;
    text-align:left;

}

.sh-nav-submit,
.sh-nav-cancel {
    padding:5px 10px;
    border:none;
    border-radius:5px;
    cursor:pointer;
    font-size:14px;
    font-weight:bold;
    transition:all 0.2s;

}

.sh-nav-submit {
    background:#325aaf;
    color:white;

}

.sh-nav-submit:hover {
    background:#2a4d98;

}

.sh-nav-cancel {
    background:#f0f0f0;
    color:#666;

}

.sh-nav-cancel:hover {
    background:#e0e0e0;

}

.mobile-stats-container,
.mobile-score-display,
.mobile-new-game-btn {
    display:none;

}

@media (max-width:768px) {
    body {
        background-color:#ffffff;
        font-size:14px;
    
    }
    .main-grid {
        grid-template-columns:1fr;
        gap:0;
        padding:0;
    
    }
    .flex.justify-between.items-center.h-16 {
        padding:0 16px;
    
    }
    .flex.items-center.space-x-4 {
        gap:12px;
    
    }
    .mobile-new-game-btn {
        display:inline-block !important;
        background:#4285f4;
        color:white;
        border:none;
        padding:4px 8px;
        border-radius:6px;
        font-size:10px;
        font-weight:500;
        cursor:pointer;
        transition:all 0.2s;
        white-space:nowrap;
        max-width:80px;
        overflow:hidden;
        text-overflow:ellipsis;
        margin-left:auto;
    
    }
    .mobile-new-game-btn:hover {
        background:#3367d6;
    
    }
    .mobile-stats-container {
        display:flex !important;
        align-items:center;
        gap:12px;
        background:#f8f9fa;
        padding:5px;
        border-radius:8px;
    
    }
    .mobile-difficulty-select {
        background:white;
        border:1px solid #dee2e6;
        border-radius:6px;
        padding:6px 8px;
        font-size:12px;
        font-weight:500;
        color:#333;
        cursor:pointer;
        max-width:100px;
    
    }
    .mobile-difficulty-select:hover,
    .mobile-difficulty-select:focus {
        border-color:#4285f4;
        outline:none;
    
    }
    .mobile-stats {
        display:flex;
        gap:12px;
        flex:1;
    
    }
    .mobile-stat-item {
        text-align:center;
        flex:1;
    
    }
    .mobile-stat-label {
        font-size:10px;
        color:#666;
        margin-bottom:2px;
        font-weight:500;
    
    }
    .mobile-stat-value {
        font-size:14px;
        font-weight:bold;
        color:#333;
    
    }
    .difficulty-section-container,
    .stats-section {
        display:none;
    
    }
    .mobile-score-display {
        display:block !important;
        font-size:22px;
        font-weight:700;
        color:#6E7C8C;
        text-align:center;
	background:#f8f9fa;
    
    }
    .right-panel {
        width:100%;
        gap:5px;
        display:flex !important;
    
    }
    .controls {
        justify-content:center;
        flex-wrap:nowrap;
        gap:16px 12px;
    margin-top: 10px;

    
    }
    .control-icon {
        font-size:20px;
    
    }
    .numpad {
        display:flex;
        flex-wrap:wrap;
        justify-content:center;
        gap:4px;
        width:100%;
        max-width:100%;
        margin:0 auto;
    
    }
    .num-btn {
        width:calc((100% - 64px) / 9);
        min-width:32px;
        height:50px;
        font-size:18px;
        font-weight:bold;
        border-radius:8px;
        box-shadow:0 2px 8px rgba(0,0,0,0.1);
        color:#4285f4;
        border:1px solid #e0e0e0;
    
    }
    .num-btn:hover {
        background:#f0f8ff;
        border-color:#4285f4;
        transform:none;
        box-shadow:0 2px 8px rgba(66,133,244,0.2);
    
    }
    .num-btn:active {
        background:#e3f2fd;
        transform:scale(0.95);
    
    }
    .new-game-btn {
        display:none;
    
    }
    .pause-content {
        padding:20px;
    
    }
    .pause-icon {
        font-size:48px;
        margin-bottom:16px;
    
    }
    .pause-title {
        font-size:24px;
        margin-bottom:8px;
    
    }
    .pause-subtitle {
        font-size:14px;
        margin-bottom:20px;
    
    }
    .resume-btn {
        padding:10px 24px;
        font-size:14px;
    
    }
}

@media (max-width:768px) {
    .game-wrapper {
        width:100%;
        max-height:calc(100vh - 200px);
        overflow-y:auto;
        padding:6px;
        background:#ffffff;
    
    }
    .game-area {
        flex-direction:column;
        align-items:center;
        gap:6px;
    
    }
    .game-board {
        width:100%;
        aspect-ratio:1 / 1;
        max-height:320px;
        height:80vw;
        max-width:100%;
        aspect-ratio:1 / 1;
        display:grid;
        grid-template-columns:repeat(9,1fr);
        grid-template-rows:repeat(9,1fr);
        gap:0.2px;
        border:2px solid #333;
        background:#ccc;
        margin:0 auto;
        box-sizing:border-box;
    
    }
    .game-cell {
        display:flex;
        align-items:center;
        justify-content:center;
        width:100%;
        height:100%;
        font-size:20px !important;
        font-weight:400;
        padding:0;
        box-sizing:border-box;
        background:var(--bg-secondary);
        color:var(--text-primary);
        border:none;
        cursor:pointer;
    
    }
    .game-cell.given {
        background:#e7edf5;
        color:#2c3e50;
        font-family:Hauss,sans-serif;
        font-weight:400;
        font-size:20px;
    
    }
    .game-cell.notes-grid {
        font-size:3vw !important;
        line-height:1 !important;
        padding:0 !important;
        white-space:pre-wrap !important;
        letter-spacing:0;
    
    }
    .game-cell.selected:not(.conflict) {
        background:#cbe3fa !important;
        color:#2c3e50 !important;
        box-shadow:0 0 0 1.5px rgba(66,133,244,0.3) !important;
        z-index:10;
    
    }
    .game-cell.conflict {
        background:#ffcdd2 !important;
        color:#d32f2f !important;
        z-index:15 !important;
    
    }
    .game-cell:hover {
        transform:none !important;
    
    }
}

.game-cell.selected:not(.conflict) {
    background:#cbe3fa !important;
    color:#2c3e50 !important;
    font-weight:300 !important;

}

.game-cell.highlighted,
.game-cell.row-highlighted,
.game-cell.col-highlighted,
.game-cell.block-highlighted {
    background:#e7edf5 !important;
    color:#333 !important;

}

.game-cell.conflict {
    background:#ffd6d6 !important;
    color:#c62828 !important;

}

#notesBtn {
    position:relative;

}

.notes-status-badge {
    position:absolute;
    top:-8px;
    right:-8px;
    background-color:#b0b8c9;
    color:white;
    font-size:10px;
    font-weight:bold;
    padding:2px 6px;
    border-radius:20px;
    text-transform:uppercase;
    line-height:1;
    pointer-events:none;
    box-shadow:0 2px 4px rgba(0,0,0,0.2);
    z-index:10;
    transition:all 0.2s ease;

}

#notesBtn.active .notes-status-badge {
    background-color:#325aaf;
    color:white;

}

@media (max-width:768px) {
    .num-btn {
        background:transparent !important;
        border:none !important;
        box-shadow:none !important;
        font-size:30px !important;
        font-weight:400 !important;
        color:var(--text-primary) !important;
        padding:4px 6px !important;
        width:auto !important;
        height:auto !important;
    
    }
    .num-btn:hover,
    .num-btn:active {
        background:transparent !important;
        transform:none !important;
        border:none !important;
        box-shadow:none !important;
    
    }
    .numpad {
        gap:8px !important;
        justify-content:center;
        flex-wrap:nowrap;
    
    }
}

.game-cell.notes-grid * {
    transition:none !important;
    margin:0 !important;
    padding:0 !important;

}

.game-cell.disabled {
    pointer-events:none;
    opacity:0.6;

}

.control-btn.disabled,
.num-btn.disabled {
    pointer-events:none;
    opacity:0.4;

}



 
@media screen and (max-width: 768px) {
.icon-play, .icon-pause {
  width: 20px;
  height: 20px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: block;
  text-indent: -9999px; 
  overflow: hidden;
}

    .pause-btn .icon-play,
    .pause-btn .icon-pause {
        width: 20px;
        height: 20px;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        display: none;
    }

    /* Icon PLAY */
    .pause-btn .icon-play {
        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11'%3E%3Cpath fill='%2394A3B7' d='M9.301 6.324 4.067 9.923A1 1 0 0 1 2.5 9.099V1.901a1 1 0 0 1 1.567-.824L9.3 4.676a1 1 0 0 1 0 1.648z'/%3E%3C/svg%3E");
    }

    /* Icon PAUSE */
    .pause-btn .icon-pause {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11'%3E%3Cpath fill='%2394A3B7' d='M3 1h2v9H3V1zm3 0h2v9H6V1z'/%3E%3C/svg%3E");
    }
    .pause-btn.playing .icon-play {
        display: block;
    }
    .pause-btn.playing .icon-pause {
        display: none;
    }

    .pause-btn:not(.playing) .icon-play {
        display: none;
    }
    .pause-btn:not(.playing) .icon-pause {
        display: block;
    }
}
.num-btn.completed {
 	cursor: default;
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.tick-icon {
	font-size: 1.8rem;
	color: #607d8b;
}
