.crossword table{
    border: solid;
    padding: 0px;
}

.crossword table td{
    border: solid;
    border-width: 1px;
    margin: 0;
    cursor: pointer;
}

.crossword td.empty{
    background-color: black;
}

.crossword td.error{
    background-color: red;
}

.crossword .solved{
    background-color: green;
}

.crossword td.solution_letter{
    background-color: lightgray;
}

.crossword td.error.solution_letter{
    background-color: darkred;
}

.crossword .solution {
    margin-top: 10px;
    margin-bottom: 10px;
}

.crossword .solution .letter{
    font-size: 1.4em;
    border: solid;
    padding: 2px;
    border-width: 0px 0px 1px 0px;
    margin: 0px;
}

.crossword input{
    color: transparent;
    text-shadow: 0 0 0 gray;
    text-align: center;
    margin: 5px;
    border: none;
    cursor: pointer;
}
.crossword input:focus{
}

.crossword input::selection{
    background-color: rgba(0,0,0,0);
}

.crossword span.number{
    position: absolute;
    font-size: 11px;
}

/* Tooltip container */
.tooltip {
    position: relative;
}

/* Tooltip text */
.tooltip .tooltiptext {
    visibility: hidden;
    width: 120px;
    background-color: #555;
    color: #fff;
    text-align: center;
    padding: 5px 0;
    border-radius: 6px;

    /* Position the tooltip text */
    position: absolute;
    z-index: 1;
    top: 35px;
    left: 50%;
    margin-left: -60px;

    /* Fade in tooltip */
    opacity: 0;
    transition: opacity 0.3s;
}

/* Tooltip arrow */
.tooltip .tooltiptext::after {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: transparent transparent #555 transparent;
}

/* Show the tooltip text when you mouse over the tooltip container */
.tooltip:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
}

.tooltip .tooltiptext .small{
    font-weight: bold;
    font-size: 11px;
}
.tooltip .tooltiptext p{
    margin: 0px;
}

.crossword .word_clue{
    cursor: pointer;
}

/*style*/
.crossword {
    font-family: Arial, Helvetica, sans-serif;
}
.crossword table{
    border-spacing: 0;
    border: none;
    border-collapse: collapse;
    width: 100%;
}
.crossword td.empty{
    background-color: #F3F3F3;
    border-color: #E3E3E3;
}
.crossword table td{
    border-color: #888;
    margin: 0;
    padding: 0;
    position: relative;
}
.crossword button{
    border:none;
    background: #333;
    color: #FFF;
    padding: 10px 20px;
    margin-bottom: 5px;
}
.crossword button:hover{
    background: #000;
    cursor: pointer;
}

.crossword input{
    line-height: 100%;
    /*font-size: 11px;*/
    margin: 0;
    text-transform: uppercase;
    text-shadow: 0 0 0 #000;
    width: 100%;
}

.crossword td.error input{
    background: #ffdbdb;
    color: #de5353;

}
.crossword td.solution_letter{
    background-color: inherit !important;
}
.crossword td.solution_letter input{
    background: #fceabb; /* Old browsers */
    background: -moz-linear-gradient(-45deg, #fceabb 0%, #fccd4d 50%, #f8b500 51%, #fbdf93 100%); /* FF3.6-15 */
    background: -webkit-linear-gradient(-45deg, #fceabb 0%,#fccd4d 50%,#f8b500 51%,#fbdf93 100%); /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(135deg, #fceabb 0%,#fccd4d 50%,#f8b500 51%,#fbdf93 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fceabb', endColorstr='#fbdf93',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}

.crossword .solution .letter{
    width: 25px;
    text-transform: uppercase;
    display: inline-block;
    border-bottom: none;
    text-align: center;
    font-size: 24px;
    line-height: 120%;
    background: #fceabb; /* Old browsers */
    background: -moz-linear-gradient(-45deg, #fceabb 0%, #fccd4d 50%, #f8b500 51%, #fbdf93 100%); /* FF3.6-15 */
    background: -webkit-linear-gradient(-45deg, #fceabb 0%,#fccd4d 50%,#f8b500 51%,#fbdf93 100%); /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(135deg, #fceabb 0%,#fccd4d 50%,#f8b500 51%,#fbdf93 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fceabb', endColorstr='#fbdf93',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
}

.crossword span.number{
    padding: 2px;
    font-size: 8px;
}

.crossword .clues{
    margin-left: -20px;
    font-size: 0;
}
.crossword .clues > div{
    display: inline-block;
    padding-left: 20px;
    vertical-align: top;
    width: 50%;
    box-sizing: border-box;
}
.crossword .clues > div p{
    font-size: 14px;
}


.crossword .tooltip .tooltiptext{
    border-radius: 0;
    background-color: #000;
    padding: 10px;
}
.crossword .tooltip .tooltiptext .small{
    font-size: 8px;
}
.crossword .tooltip .tooltiptext .clue{
    font-size: 12px;
    margin-bottom: 5px;
}

.crossword .buttons {
    display: flex;
    justify-content: space-between;
}
.crossword button {
    width:30%
}

.crossword span.current_word {
    display: block;
    font-size: 14px;
    margin: 10px 0;
    text-align: center;
    font-weight: 700;
    background: #333;
    color: #fff;
    line-height:36px;
}

@media only screen and (max-width: 400px) {
    .crossword button{width: 100%;}
    .crossword span.number{font-size: 5px;}
    .crossword .solution .letter{font-size: 12px; margin-top: 5px;}
    .crossword .solution span:first-child{display: block;}
    .crossword .buttons {display: block;}
}

.crossword .focus{
    background-color: yellow;
}
.action[data-action="show_crossword"] {
    background-color: #3597DB;
    display:block;
    margin-left:auto;
    margin-right:auto;
}

.action[data-action="show_crossword"]:hover {
    background-color: #3597DB;
}
