/* tool */

.opacity-0 {
    opacity: 0;
}


/* ----- */

/* static */

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

header {
    min-height: 50px;
}

.content {
    flex: 1 0 auto;
}

.footer {
    flex-shrink: 0;
    background: #222e3e;
}

/* ----- */

header {
    height: 70px;
    border-bottom: 1px solid rgba(0, 63, 123, .1);
}

header img.logo {
    width: 50px;
    height: 50px;
}

header .hbg-menu {
    width: 20px;
    height: 12px;
    background-image: url('/images/menu.png');
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: center;
}


.pencil-grid-cell svg {
    width: 10px;
    height: 10px;
    position: absolute;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
}

.game-table {
    width: 100%;
    height: 500px;
    border: 2px solid #344861;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.game-table::after {
    display: block;
    content: "";
    position: absolute;
    left: 0;
    top: 33.3333%;
    height: 33.4%;
    width: 100%;
    border-top: 2px solid #344861;
    border-bottom: 2px solid #344861;
    pointer-events: none;
    z-index: 999;
}

.game-table::before {
    display: block;
    content: "";
    position: absolute;
    left: 33.3333%;
    top: 0%;
    height: 100%;
    width: 33.4%;
    border-left: 2px solid #344861;
    border-right: 2px solid #344861;
    pointer-events: none;
    z-index: 999;
}

.game-table .game-row {
    /* height: 11.1111111%; */
    flex: 1;
    border-bottom: 1px solid #bec6d4;
}

.game-table .game-cell {
    border-right: 1px solid #bec6d4;
    /* border-bottom: 1px solid #bec6d4; */
    position: relative;
    /* width: 11.2%; */
    flex: 1;
    cursor: pointer;
}

@media screen and (max-width: 768px) {
    .game-table .game-cell .cell-value svg {
        height: 60%;
    }
}


/* .game-row .game-cell:last-of-type {
    border-right: none;
} */

.game-table .pencil-grid-cell {
    position: relative;
    width: 33.3333%;
    height: 33.3333%;
    display: inline-block;
    font-size: 10px;
    line-height: 20px;
    color: #aaa;
}

.game-table .pencil-grid {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    font-size: 0;
    line-height: 0;
}

.new-game-btn {
    width: 100%;
    height: 60px;
    margin-bottom: 16px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    background-color: #4a90e2;
    font-size: 20px;
    font-weight: 600;
    line-height: 60px;
    vertical-align: middle;
    text-align: center;
    color: #fff;
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}

.new-game-btn.new-game-btn-mobile {
    background-color: #fff;
    margin-bottom: 0;
    color: #4a90e2;
}

.new-game-btn.new-game-btn-mobile .new-game-menu {
    left: auto;
    right: 0;
    z-index: 99999;
    transform: none;
}

.new-game-btn.new-game-btn-mobile .tooltip-arrow {
    left: auto;
    right: -15px;
}

.numpad-wrapper .numpad .numpad-item {
    border-color: #bec6d4;
    border-style: solid;
    border-width: 1px 0 0 1px;
    padding-top: 15px;
    padding-bottom: 15px;
    cursor: pointer;
    font-size: 2.5rem;
    font-weight: 200;
    padding-left: 0;
    padding-right: 0;
}

@media (max-width: 768px) {
    .numpad-wrapper .numpad .numpad-item {
        border: none;
    }
}

.numpad-wrapper .numpad .numpad-item .num-img{
    background-repeat: no-repeat;
    background-position: center;
    background-size: 55px 50px;
    width: 55px;
    height: 55px;
    opacity: 0.8;
}

.numpad-wrapper .numpad .numpad-item .one {
    background-image: url('/images/numbers/1.png');
}

.numpad-wrapper .numpad .numpad-item .two {
    background-image: url('/images/numbers/2.png');
}

.numpad-wrapper .numpad .numpad-item .three {
    background-image: url('/images/numbers/3.png');
}

.numpad-wrapper .numpad .numpad-item .four {
    background-image: url('/images/numbers/4.png');
}

.numpad-wrapper .numpad .numpad-item .five {
    background-image: url('/images/numbers/5.png');
}

.numpad-wrapper .numpad .numpad-item .six {
    background-image: url('/images/numbers/6.png');
}

.numpad-wrapper .numpad .numpad-item .seven {
    background-image: url('/images/numbers/7.png');
}

.numpad-wrapper .numpad .numpad-item .eight {
    background-image: url('/images/numbers/8.png');
}

.numpad-wrapper .numpad .numpad-item .nine {
    background-image: url('/images/numbers/9.png');
}

.numpad-wrapper .numpad-item:hover {
    background-color: #f3f6fa;
}

.numpad-wrapper .numpad .numpad-item:nth-child(3n) {
    border-right-width: 1px;
}



.game-controls .game-controls-item:nth-child(2n) {
    border-right-width: 1px;
}

.game-controls .game-controls-item:nth-child(3),
.game-controls .game-controls-item:nth-child(4) {
    border-bottom-width: 1px;
}

.game-controls .game-controls-item {
    text-align: center;
    cursor: pointer;
    border-color: #bec6d4;
    border-style: solid;
    border-width: 1px 0 0 1px;
    padding-bottom: 6px;
    padding-top: 12px;
}

@media (max-width: 768px) {
    .game-controls .game-controls-item {
        border: none;
    }
}


.game-controls .game-controls-item:hover {
    background-color: #f3f6fa;
}

.game-controls .game-controls-item .icon-game-control {
    width: 30px;
    height: 32px;
    color: #344861;
    -webkit-transition: color 0.2s ease-in-out;
    -o-transition: color 0.2s ease-in-out;
    -moz-transition: color 0.2s ease-in-out;
    transition: color 0.2s ease-in-out;
    background-position: center;
    background-size: contain;
}

.game-controls .pencil-img {
    background-image: url('/images/control_button/blue_btn_note.png');
}

.game-controls .hint-img {
    background-image: url('/images/control_button/blue_btn_hint.png');
}

.game-controls .undo-img {
    background-image: url('/images/control_button/blue_btn_undo.png');
}

.game-controls .erase-img {
    background-image: url('/images/control_button/blue_btn_erase.png');
}

.game-table .game-cell.highlight-cell {
    background-color: #e2e7ed;
}


.game-table .game-cell.highlight-cell.selected {
    background-color: #bbdefb;
}

.game-table .game-cell.highlight-cell.selected.conflict {
    background-color: #f7cfd6;
}

.game-table .game-cell.highlight-number {
    background-color: #cbdbed;
}

.game-table .game-cell.conflict {
    background-color: #f7cfd6;
}

.game-cell.conflict:not(.game-value) .cell-value svg path {
    fill: #fb3d3f;
}

.game-cell.mistake .cell-value svg path {
    fill: #fb3d3f;
}

.game-value .cell-value svg path {
    fill: #344861;
}

.cell-value svg path {
    fill: #4a90e2;
}

.game-cell:hover {
    background-color: #def;
}

.game-info-wrapper .timer-wrapper .timer {
    display: inline-block;
    position: relative;
    top: -7px;
    font-weight: 600;
    color: #94a3b7;
    font-size: 16px;
    line-height: 0.8;
    width: 50px;
}

.game-info-wrapper .timer-wrapper .timer-btn-container {
    margin-left: 10px;
}

.game-info-wrapper .timer-wrapper .timer-pause {
    display: inline-block;
    width: 27px;
    height: 27px;

    cursor: pointer;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
}

.game-info-wrapper .timer-wrapper .timer-pause.icon-pause {
    background-image: url('/images/pause.png');
}

.game-info-wrapper .timer-wrapper .timer-pause.icon-play {
    background-image: url('/images/play.png');
    display: none;
}

.sudoku-wrapper.paused .game-info-wrapper .timer-wrapper .timer-btn-container .timer-pause.icon-play {
    display: inline-block;
}

.sudoku-wrapper.paused .game-info-wrapper .timer-wrapper .timer-btn-container .timer-pause.icon-pause {
    display: none;
}

.sudoku-wrapper.paused .game-table .game-cell.highlight-cell {
    background-color: transparent;
}

.sudoku-wrapper.paused .game-table .game-cell.highlight-cell.selected {
    background-color: transparent;
}

.sudoku-wrapper.paused .game-table .game-cell.highlight-number {
    background-color: transparent;
}

.sudoku-wrapper.paused .cell-value svg {
    opacity: 0;
}

.sudoku-wrapper .pause-overlay {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: transparent;
    cursor: pointer;
    z-index: 10;
}

.sudoku-wrapper.paused .pause-overlay {
    display: block;
}

.sudoku-wrapper .icon-play-big {
    position: relative;
    top: 50%;
    width: 60px;
    height: 60px;
    margin: 0 auto;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    background-image: url('/images/big-play.png');
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.game-controls .game-controls-pencil .pencil-img:after {
    content: "OFF";
    display: inline-block;
    position: absolute;
    top: -1px;
    left: 110%;
    margin-left: 2px;
    padding: 1px 4px;
    font-size: 12px;
    color: #fff;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    background-color: #94a3b7;
    -webkit-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
}

.pencil-mode .game-controls .game-controls-pencil .pencil-img:after {
    content: "ON";
    background-color: #4a90e2;
}

.difficulty-wrap .dropdown-arrow {

    width: 9px;
    height: 6px;
    background-image: url('/images/arrow_down.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100%;
    transition: all;
}

.difficulty-wrap .dropdown-arrow.menu-open {
    transform: rotate(180deg);
}

#id-difficulty-wrap .difficulty-label .dropdown-menu {
    left: -16px;
    min-width: 7rem;
    z-index: 99999;
}

#id-difficulty-wrap .difficulty-label .dropdown-menu .dropdown-item {
    padding-left: 1rem;
    padding-right: 1rem;
}

.difficulty-menu,
.new-game-menu {
    display: none;
    top: -webkit-calc(100% - 5px);
    top: -moz-calc(100% - 5px);
    top: calc(100% - 5px);
    width: 200px;
    margin: 0;
    padding: 0;
    -webkit-border-radius: 8px;
    -moz-border-radius: 8px;
    border-radius: 8px;
    -webkit-box-shadow: 0 5px 20px 0 rgba(0, 0, 0, .2);
    -moz-box-shadow: 0 5px 20px 0 rgba(0, 0, 0, .2);
    box-shadow: 0 5px 20px 0 rgba(0, 0, 0, .2);
    text-align: center;
    background-color: #fff;
    color: #000;
    z-index: 51
}

.difficulty-menu,
.difficulty-menu .tooltip-arrow,
.new-game-menu,
.new-game-menu .tooltip-arrow {
    position: absolute;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%)
}

.difficulty-menu .tooltip-arrow,
.new-game-menu .tooltip-arrow {
    bottom: 100%;
    width: 50px;
    height: 25px;
    overflow: hidden
}

.difficulty-menu .tooltip-arrow:after,
.new-game-menu .tooltip-arrow:after {
    content: "";
    position: absolute;
    top: 5px;
    left: 50%;
    width: 20px;
    height: 20px;
    background: #fff;
    -webkit-transform: translateX(-50%) translateY(50%) rotate(45deg);
    -moz-transform: translateX(-50%) translateY(50%) rotate(45deg);
    -ms-transform: translateX(-50%) translateY(50%) rotate(45deg);
    -o-transform: translateX(-50%) translateY(50%) rotate(45deg);
    transform: translateX(-50%) translateY(50%) rotate(45deg);
    -webkit-box-shadow: 0 5px 20px 0 rgba(0, 0, 0, .2);
    -moz-box-shadow: 0 5px 20px 0 rgba(0, 0, 0, .2);
    box-shadow: 0 5px 20px 0 rgba(0, 0, 0, .2);
    -webkit-border-top-left-radius: 8px;
    -moz-border-radius-topleft: 8px;
    border-top-left-radius: 8px
}

.difficulty-menu ul,
.new-game-menu ul {
    padding: 13px 0;
    margin: 0;
    list-style: none
}

.difficulty-menu a,
.new-game-menu a {
    display: block;
    padding: 11px 0;
    font-size: 16px;
    line-height: 1;
    font-weight: 600;
    color: #4a90e2;
    text-decoration: none;
    cursor: pointer;
    -webkit-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out
}

.difficulty-menu a:hover,
.new-game-menu a:hover {
    background-color: #f3f6fa
}

.difficulty-menu a.new-game-menu-cancel,
.new-game-menu a.new-game-menu-cancel {
    color: #e55c6c
}

.new-game-menu {
    width: 200px
}

.lost-progress-label {
    padding: 10px 15px;
    font-size: 15px;
    line-height: 1.33;
    color: #6e7c8c;
}

.win-overlay {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #4a90e2 -webkit-radial-gradient(center top, circle, #82ffff 0, #4a90e2 40%);
    background: #4a90e2 -moz-radial-gradient(center top, circle, #82ffff 0, #4a90e2 40%);
    background: #4a90e2 -o-radial-gradient(center top, circle, #82ffff 0, #4a90e2 40%);
    background: #4a90e2 radial-gradient(circle at center top, #82ffff 0, #4a90e2 40%);
    z-index: 0;
    overflow: hidden;
    opacity: 0;
    -webkit-transition: opacity .3s ease-in-out;
    -o-transition: opacity .3s ease-in-out;
    -moz-transition: opacity .3s ease-in-out;
    transition: opacity .3s ease-in-out;
    -webkit-transform: translateZ(0);
    -moz-transform: translateZ(0);
    transform: translateZ(0);
}

.sudoku-wrapper.win .win-overlay {
    opacity: 1;
    pointer-events: auto;
    z-index: 9999;
}

.sudoku-wrapper.win .game-table .game-cell {
    cursor: default;
}

.win-overlay .button-play {
    width: 240px;
    margin: 0 auto;
    background-color: #fff;
    text-align: center;
    color: #4a90e2;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    padding: 15px 0;
    -webkit-transition: color .2s ease-in-out;
    -o-transition: color .2s ease-in-out;
    -moz-transition: color .2s ease-in-out;
    transition: color .2s ease-in-out;
    cursor: pointer;
}

.win-overlay .icon-clock {
    width: 20px;
    height: 20px;
    background-image: url('/images/clock.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
}

.win-overlay .win-text {
    color: #fff;
    font-size: 30px;
    font-weight: 600;
}

.win-overlay .win-time {
    color: #fff;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: .3px;
}

.entry-content {
    font-size: 15px;
    line-height: 25px;
    color: #6e7c8c;
}

.entry-title {
    margin: 0 auto 20px;
    font-weight: 700;
    font-size: 28px;
    line-height: 36px;
    vertical-align: middle;
    color: #344861;
}

.entry-content ul {
    display: block;
    margin: 30px 0;
    padding: 30px 30px 30px 45px;
    background-color: #f3f6fa;
    list-style: disc outside;
}

.game-info-wrapper .switch {
    display: block;
    position: relative;
    top: 1px;
    width: 46px;
    height: 14px;
    -webkit-border-radius: 13px;
    -moz-border-radius: 13px;
    border-radius: 13px;
    background-color: #e2e7ed;
}

.game-info-wrapper .switch input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    padding: 0;
}

.game-info-wrapper .switch .switch-pin {
    display: block;
    position: absolute;
    top: -6px;
    left: -1px;
    width: 26px;
    height: 26px;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    background-color: #fff;
    border: 1px solid #e2e7ed;
    -webkit-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
    -webkit-transform: translateZ(0);
    -moz-transform: translateZ(0);
    transform: translateZ(0);
}

.game-info-wrapper .switch input:checked+.switch-pin {
    left: 20px;
    border-color: #4a90e2;
    background-color: #4a90e2;
}

.game-info-wrapper .switch .switch-pin svg path {
    fill: #95a3ba;
}

.game-info-wrapper .switch input:checked+.switch-pin svg path {
    fill: #4a90e2;
}

.filled-animation {
    -webkit-animation: filledGrid 0.3s cubic-bezier(0, .5, 1, .5);
    -moz-animation: filledGrid 0.3s cubic-bezier(0, .5, 1, .5);
    -o-animation: filledGrid 0.3s cubic-bezier(0, .5, 1, .5);
    animation: filledGrid 0.3s cubic-bezier(0, .5, 1, .5)
}

.app-teaser-wrapper {
    padding: 15px;
}


@-webkit-keyframes filledGrid {
    50% {
        background-color: #abc1da
    }
}

@-moz-keyframes filledGrid {
    50% {
        background-color: #abc1da
    }
}

@-o-keyframes filledGrid {
    50% {
        background-color: #abc1da
    }
}

@keyframes filledGrid {
    50% {
        background-color: #abc1da
    }
}


.app-teaser-wrapper .apple-badge,
.app-teaser-wrapper .google-badge {
    width: 120px;
    height: 40px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100%;
}

.paused .game-cell.highlight-table {
    background-color: transparent;
}

.paused .game-cell.highlight-number {
    background-color: transparent;
}

.paused .game-cell.conflict {
    background-color: transparent;
}

.error {
    padding-top: 2%;
    padding-bottom: 10%;
}
.error .content h1 {
    font-size: 72px;
    color: #434e59;
}
.error .error-desc {
    font-size: 20px;
    color: rgba(0,0,0,.45);
}

.category {
    padding-top: 40px;
    padding-bottom: 100px;
}

@media screen and (max-width: 768px) {
    .category {
        padding-top: 30px;
        padding-bottom: 30px;
    }
}

.footer .nav .nav-item a.nav-link {
    color: #fff;
}

.footer .nav .nav-item a.nav-link:after {
    content: "";
    width: 0;
    height: 2px;
    background-color: #4a90e2;
    display: block;
    margin: 5px auto 0;
    -webkit-transition: .3s;
    -o-transition: .3s;
    -moz-transition: .3s;
    transition: .3s;
}

.footer .nav .nav-item a.nav-link.active::after {
    width: 100%;
}

@media screen and (min-width: 576px) {
    .footer .nav .nav-item a.nav-link:hover::after {
        width: 100%;
    }
}