body {
	background-color: #fcfcde;
	font-family: helvetica;
}

div.puzzle_container {
	display: table;
	margin-left: auto;
	margin-right: auto;

	border: 1px solid #808080;
	border-radius: 10px;
	padding: 10px;
	background-color: #defbfc;

	-webkit-box-shadow: 10px 10px 42px -8px rgba(0,0,0,0.75);
	-moz-box-shadow: 10px 10px 42px -8px rgba(0,0,0,0.75);
	box-shadow: 10px 10px 42px -8px rgba(0,0,0,0.75);
}

div.puzzle_title {
    text-align: center;
    display: table-row;
}

h1.puzzle_title_header {
    text-align: center;
    max-width: 600px;
    margin-top: 0px;
    margin-bottom: 0px;
}

div.puzzle_container_panel {
    width: 600px;
	max-width: 600px;
	font-size: 14px;
}

div.puzzle_container_column {
	display: table-cell;
	vertical-align: top;
}

div.puzzle_container_box_grid {
	padding: 10px;
}
div.puzzle_container_box_panel {
	padding: 10px;
}
div.puzzle_container_box_across {
	padding-top: 2px;
	padding-bottom: 10px;
	padding-left: 10px;
	padding-right: 10px;
}
div.puzzle_container_box_down {
	padding-top: 2px;
	padding-bottom: 10px;
	padding-left: 10px;
	padding-right: 10px;
}

div.puzzle_grid {
	padding: 0;
}

div.clue_box_title {
	padding-left: 6px;
	padding-bottom: 4px;
}

div.reassign-numbers-container {
	text-align: center;
	padding-bottom: 10px;
}

div.rotational-symmetry-container {
	text-align: center;
	font-size: 16px;
	font-weight: bold;
}

/* Generated from http://www.bestcssbuttongenerator.com/#/36 */
input.lt-button {
	-moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
	-webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
	box-shadow:inset 0px 1px 0px 0px #ffffff;
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf));
	background:-moz-linear-gradient(top, #ededed 5%, #dfdfdf 100%);
	background:-webkit-linear-gradient(top, #ededed 5%, #dfdfdf 100%);
	background:-o-linear-gradient(top, #ededed 5%, #dfdfdf 100%);
	background:-ms-linear-gradient(top, #ededed 5%, #dfdfdf 100%);
	background:linear-gradient(to bottom, #ededed 5%, #dfdfdf 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf',GradientType=0);
	background-color:#ededed;
	-moz-border-radius:6px;
	-webkit-border-radius:6px;
	border-radius:6px;
	border:1px solid #dcdcdc;
	display:inline-block;
	cursor:pointer;
	color:black;
	font-family:Arial;
	font-size:16px;
	font-weight:bold;
	padding:6px 24px;
	text-decoration:none;
	text-shadow:0px 1px 0px #ffffff;
}
input.lt-button:hover {
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed));
	background:-moz-linear-gradient(top, #dfdfdf 5%, #ededed 100%);
	background:-webkit-linear-gradient(top, #dfdfdf 5%, #ededed 100%);
	background:-o-linear-gradient(top, #dfdfdf 5%, #ededed 100%);
	background:-ms-linear-gradient(top, #dfdfdf 5%, #ededed 100%);
	background:linear-gradient(to bottom, #dfdfdf 5%, #ededed 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed',GradientType=0);
	background-color:#dfdfdf;
}
input.lt-button:active {
	position:relative;
	top:1px;
}
input.lt-button:disabled {
    -moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
    -webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
    box-shadow:inset 0px 1px 0px 0px #ffffff;
    background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ffffff), color-stop(1, #f0f0f0));
    background:-moz-linear-gradient(top, #ffffff 5%, #f0f0f0 100%);
    background:-webkit-linear-gradient(top, #ffffff 5%, #f0f0f0 100%);
    background:-o-linear-gradient(top, #ffffff 5%, #f0f0f0 100%);
    background:-ms-linear-gradient(top, #ffffff 5%, #f0f0f0 100%);
    background:linear-gradient(to bottom, #ffffff 5%, #f0f0f0 100%);
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f0f0f0',GradientType=0);
    background-color:#ffffff;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    border-radius:6px;
    border:1px solid #dcdcdc;
    display:inline-block;
    cursor:default;
    color:#e3dfe3;
    font-family:Arial;
    font-size:15px;
    font-weight:bold;
    padding:6px 24px;
    text-decoration:none;
    text-shadow:0px 1px 0px #ffffff;
}

label.lt-checkbox-label {
	display: inline-block;
	padding-top: 5px;
	vertical-align: top;
}

input.lt-checkbox {
	width: 20px;
	height: 20px;
	display: inline-block;
	cursor:pointer;
}

table.puzzle_grid_table {
    border-width: 0 0 1px 1px;
    border-spacing: 0;
    border-collapse: collapse;
    border-style: solid;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;

    margin: auto;
    font-family: sans-serif;
}
tr.puzzle_grid_row {
}
td.puzzle_grid_cell {
	margin: 0;
	border-width: 1px 1px 0 0;
	border-style: solid;
	border-color: black;
    padding: 0px;
    width: 30px;
    height: 30px;
    background-clip: padding-box;
    vertical-align: middle;
    text-align: center;
    cursor: pointer;
    position: relative;
}
div.left-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 1px;
    background-color: black;
}
div.right-bar {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 1px;
    background-color: black;
}
div.top-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 1px;
    width: 100%;
    background-color: black;
}
div.bottom-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 1px;
    width: 100%;
    background-color: black;
}

div.cursor-marker {
    position: absolute;
    top: 0;
    left: 0;
    height: 4px;
    width: 4px;
    background-color: red;
}

div.cell_number {
    position: absolute;
    top: -5px;
    left: 1px;

    font-size: 9px;
}

div.cell_contents {
    font-weight: bold;
}

td.closed_cell {
    background-color: black;
}
td.closed_cell_highlighted {
    background-color: #313131;
}
td.open_cell {
    background-color: white;
}
td.open_cell_highlighted {
    background-color: #8fb28f;
}
td.open_cell_highlighted_intermediate {
    background-color: #ccffcc;
}

.cellField {
    position: absolute;
    z-index: 2;
    background-color: #e6e68a;
    padding: 3px;
    left: 0px;
    top: 15px;
}

div.clues-highlight-primary {
    background-color: #ccffcc;

    margin-right: -60px;
    padding-right: 60px;
}

div.clues-highlight-secondary {
    background-color: #f0f0f0;

    margin-right: -60px;
    padding-right: 60px;
}

div.clue-line {
    margin-bottom: 6px;
}

div.clue-container {
	background-color: white;
    border: 2px solid black;
    margin-left: 5px;
    margin-bottom: 5px;
    margin-right: 5px;
    margin-top: 0px;
    width: 400px;
    height: 250px;
    overflow-y: scroll;
    overflow-x: hidden;
}

div.clue-container-full-height {
    position: relative;
}

div.clue-contenteditable {
    width: 340px;
    max-width: 340px;
    min-height: 250px;
    outline: 0px solid transparent;
    position: relative;
}

div.clue-right-border {
    position: absolute;

    /* This is relative to clue-container-full-height, which is the full
       height of the contenteditable div. Thus this creates a line which is
       1px thick and the full height of the contenteditable.
       It's nearly the case that we could just use border-right on the
       clue-contenteditable to achieve the same effect. However, when done
       that way, the border is *below* the over-extending
       clues-highlight background colors, and that looks ugly */
    left: 340px;
    top: 0px;
    bottom: 0px;

    width: 1px;
    background-color: black;
}

div.display-answer-length-next-to-line::after {
    content: attr(data-answer-length);
    display: inline-block;
    float: right;
    margin-right: -42px;
}

span.keyboard-shortcut {
    font-family: 'Courier New';
    font-weight: bold;
}

.instructions-header {
    font-size: 18px;
}

/* find-matches stuff */

div.find-matches-text {
    text-align: center;
    padding-bottom: 5px;
}
div.find-matches-pattern {
    text-align: center;
    padding-bottom: 5px;
    font-size: 16px;
    font-weight: bold;
}
div.find-matches-clue {
    text-align: center;
    padding-bottom: 5px;
    font-size: 16px;
}
div.find-matches-result {
    text-align: center;
    padding-bottom: 5px;
}
div.find-matches-close-button {
    text-align: center;
}

span.find-matches-pattern-blank {
    border-bottom: 2px solid black;
    padding: 1px 1px 0px 1px;
    margin-right: 0.5em;
    margin-bottom: 1ex;
    width: 1.3em;
    display: inline-block;
    text-align: center;
    font-style: normal;
    line-height: normal;
}

/* SelectList stuff */

div.lt-select-list {
    width: 300px;
    max-width: 300px;
    height: 400px;
    max-height: 400px;
    overflow-y: scroll;
    background-color: white;
    display: inline-block;
    text-align: left;
    font-size: 16px;
    border: 1px solid black;
}

a.lt-select-list-option {
    background-color: white;
    color: black;
    text-decoration: none;
    padding-left: 4px;
    padding-top: 4px;
    padding-bottom: 4px;
    font-weight: bold;
    font-family: 'Courier New';
    cursor: pointer;
}

/* Highlight a cell via background-color if either:
   - It is hovered
   - It is focused AND the lt-select-list as a whole is not hovered
*/
a.lt-select-list-option:focus {
    background-color: #f2f9fc;
}

.lt-select-list:hover
a.lt-select-list-option:focus {
    background-color: white;
}

a.lt-select-list-option:hover {
    background-color: #f2f9fc !important;
}

/* Remove outline from focused elements */
a.lt-select-list-option:focus {
    outline: 0px solid transparent;
}

/* dimensions panel */

.dimension-panel {
    margin-top: 12px;
    padding-top: 0px;
    padding-bottom: 10px;
    text-align: center;
}

.dimension-panel-edit-1 {
    font-weight: bold;
    padding-right: 5px;
}

.dimension-panel-edit-2 {
    padding-right: 10px;
}

.dimension-panel-edit-3 {
    font-weight: bold;
    padding-right: 5px;
}

.dimension-panel-edit-4 {
    padding-right: 10px;
}

.dimension-panel-static-1 {
    font-weight: bold;
    padding-right: 5px;
}

.dimension-panel-static-2 {
    padding-right: 10px;
}

.dimension-panel-static-3 {
    font-weight: bold;
    padding-right: 5px;
}

.dimension-panel-static-4 {
    padding-right: 10px;
}

/* clue display below the grid */

div.selected-clue-text-display {
    border: 1px solid black;
    margin-bottom: 10px;
}

div.selected-clue-text-widget {
    min-height: 46px;
}

div.selected-clue-text-display-item {

}

div.selected-clue-text-display-item-0 {
    padding-bottom: 4px;
}

div.selected-clue-text-display-item-1 {
    padding-top: 4px;
}

div.selected-clue-text-display-item-primary {
    background-color: #ccffcc;
}

div.selected-clue-text-display-item-secondary {
    background-color: #f0f0f0;
}
