:root {
    --rows: 6;
    --cols: 6;
}

.btn, .card {
    border-radius: 0 !important;
}

.container, .card, .btn {
    font-family: "Tabac Sans"
}

.board-container {
    display: grid;
    grid-template-columns: repeat(var(--cols), 1fr);
    grid-template-rows: repeat(var(--rows), 1fr);
    width: 100%;
    max-width: 500px; /* Omezí maximální šířku na desktopu */
    aspect-ratio: 1 / 1; /* Udržuje čtvercový poměr stran */
    margin: auto;
    border: 2px solid #000;
    border-right:none
}

.cell {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(1rem, 8vw, 2rem); /* Responzivní velikost písma */
    font-family: monospace;
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    user-select: none; /* Zabrání označování textu */
}
.cell:nth-child(var(--cols)) {
    border-right: none;
}
.cell:nth-last-child(-n + var(--cols)) {
    border-bottom: none;
}

.cell.row2 {
    border-bottom: 2px solid black;
}
.cell.col3 {
    border-right: 2px solid black;
}

.cell-fix { font-weight: bold;  }
.cell-dot { background-color: #fff; }

.cell-num {
    font-size: clamp(0.75rem, 4vw, 1.2rem);
    font-weight: bold;
    color: #00f;
    background-color: #777;
}

.cell.active {
    background-color: #dd0!important;
}

.game-mode-tip .cell.active {
    background-color: #dff!important;
}

.cell.sub-active {
    background: #ffc !important;
}
.cell.cell-fix.sub-active {
    background: radial-gradient(circle, #d7d7da 40%, #ffc 55%) !important;
}

.cell.error {
    background-color: #f8d7da;
}

    

.sudoku-btn-row {
    margin-bottom: 2px !important;
}
.sudoku-btn-col {
    padding-left: 1px !important;
    padding-right: 1px !important;
}
.sudoku-btn {
    height: 4.5rem;
    min-height: 4.5rem;
    font-size: 1.5rem;
    padding: 0;
}

span.tip::before {
    position: absolute;
    /*transform: translate(50%, 50%);*/
    font-size: 0.7rem;
    color: #444 !important;
    font-weight: normal;
}
.cell.tip-1 span.tip-1::before {
    content: "1";
    top: 10%;
    left: 10%;
}
.cell.tip-2 span.tip-2::before {
    content: "2";
    top: 10%;
    left: 50%;
    text-align: center;
    transform: translateX(-50%);
}
.cell.tip-3 span.tip-3::before {
    content: "3";
    top: 10%;
    right: 10%;
}
.cell.tip-4 span.tip-4::before {
    content: "4";
    bottom: 10%;
    left: 10%;
}	
.cell.tip-5 span.tip-5::before {
    content: "5";
    bottom: 10%;
    left: 50%;
    text-align: center;
    transform: translateX(-50%);
}
.cell.tip-6 span.tip-6::before {
    content: "6";
    bottom: 10%;
    right: 10%;
}

.game-overlay {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50vw;
    height: 50vh;
    background-color: rgba(0, 0, 0, 0.9);
    color: white;
    display: none;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    z-index: 1000;
    border-radius: 10px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}

.game-overlay.show {
    display: flex;
}

.game-overlay h2 {
    margin-bottom: 20px;
    font-size: 2rem;
    color:#fff;
}

.game-overlay .time {
    font-size: 1.5rem;
    margin-bottom: 20px;
}

@media (max-width: 600px) {
    .game-overlay {
      inset: 0;          /* top:0; right:0; bottom:0; left:0; */
      width: 100vw;      /* šířka celé viewport šířky  */
      height: 100dvh;    /* 100 % výšky včetně dynamického viewportu */
      transform: none;   /* vycentrování už není potřeba */
    }
  }