/* Generic pytis forms styles */

.pytis-form.edit-form .errors,
.pytis-form.query-fields-form .errors {
    color: #000;
    background-color: #fed;
    border: 1px solid #fcb;
    border-width: 1px 0;
    margin: 0.6em 0;
    text-align: left;
    padding: 0 3px;
}
.pytis-form.edit-form .errors div,
.pytis-form.query-fields-form .errors div {
    margin: 2px 0;
}
.pytis-form.edit-form .errors a,
.pytis-form.query-fields-form .errors a {
    color: #000;
}

.pytis-form .group, .pytis-form .submit-buttons, .pytis-form .paging-controls {
    background-color: #eee;
    border: 1px solid #ddd;
    border-width: 1px 0;
    margin: 0.4em 0;
}
.pytis-form .group {
    padding: 0.4em 0.6em;
}
.pytis-form .submit-buttons {
    margin-top: 6px;
    padding: 5px;
    text-align: center;
}
.pytis-form .submit-buttons button {
    margin: 3px 4px;
}

.pytis-form.query-fields-form > table {
    border-collapse: collapse;
    border: none;
    border-spacing: 0;
}
.pytis-form.query-fields-form > table > tbody > tr > td {
    padding: 0;
}
.pytis-form.query-fields-form .group {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
}
.pytis-form.query-fields-form .errors {
    text-align: left;
    margin: 0 0 0.3em 0;
}
.pytis-form.query-fields-form > .body {
    display: inline-block;
    margin-right: 0.8em;
    position: relative;
}
.pytis-form.query-fields-form > .submit-buttons {
    display: inline-block;
    vertical-align: bottom;
    background: none;
    background-color: white;
    border: none;
    margin: 0 0 5px 0;
    padding: 0;
    text-align: left;
}
.pytis-form.query-fields-form > .submit-buttons button {
    margin: 0;
    padding: 1px 5px;
}

.pytis-form .group div.group {
    border-width: 0;
    margin: 0;
    padding: 0;
}
.pytis-form .group fieldset.group {
    border-width: 1px;
}

@media print {
    .pytis-form .group {
	/* Make the border all around, not just top and bottom, when printing. */
	border-width: 1px !important;
    }
}

.pytis-form fieldset.outer {
    border: none;
    margin: 0;
    padding: 0;
    position: relative;
}
.pytis-form legend.empty { display: none; }
.pytis-form table.horizontal-group {
    border: none;
    border-spacing: 0;
    border-collapse: collapse;
}
.pytis-form table.vertical-group td.expanded,
.pytis-form table.horizontal-group.expanded {
    width: 100%;
}
.pytis-form div.horizontal-group table.vertical-group td.expanded,
.pytis-form div.horizontal-group table.horizontal-group.expanded {
    width: auto;
}
.pytis-form table.horizontal-group > tbody > tr > td,
.pytis-form table.vertical-group > tbody > tr > td {
    vertical-align: top;
    padding: 2px 0;
}
.pytis-form table.vertical-group > tbody > tr > td.spacer {
    width: 100%;
}
.pytis-form .horizontal-group fieldset.group {
    margin: 0 0 0.4em 0;
    /* margin-bottom: 100%; ** this breaks fieldset border. */
}
.pytis-form table.horizontal-group > tbody > tr > td { padding-right: 0.6em; }
.pytis-form table.horizontal-group > tbody > tr > td:last-child { padding-right: 0; }

.pytis-form div.horizontal-group {
    margin-left: -0.6em;
}
.pytis-form div.horizontal-group > div {
    display: inline-block;
    margin-bottom: 3px;
    margin-left: 0.6em;
    vertical-align: top;
}

.pytis-form .error, .pytis-form .validation-error {
    color: #a21;
}


/* Fix MSIE fieldset background */
* html .pytis-form table.horizontal-group { position: relative; }
* html .pytis-form fieldset.group { position: relative; margin: 1em 0; padding-top: 0.7em; }
* html .pytis-form .horizontal-group fieldset.group { margin: 0 0 1em 0; }
* html .pytis-form fieldset.group legend { color: #000; position: absolute; top: -0.6em; left: 0.2em; }

.pytis-form .ajax-loading {
    color: #aaa;
    padding: 6px 0 6px 30px;
    background-image: url(ajax-loading.gif);
    background-position: 8px center;
    background-repeat: no-repeat;
}
.pytis-form .form-load-error {
    padding: 6px 0 6px 36px;
    background-image: url(error.png);
    background-position: 8px center;
    background-repeat: no-repeat;
}
.pytis-form .form-load-traceback {
    padding: 4px;
    margin-left: 6px;
    background-color: #eee;
    border: 1px solid #ddd;
}

.pytis-form.browse-form > .body,
.pytis-form.browse-form > .ajax-container > .body {
    margin-top: .3em;
}
.pytis-form.browse-form table.data-table {
    border-collapse: collapse;
    border: none;
    overflow-x: scroll;
}
.pytis-form.browse-form table.data-table thead {
    display: table-header-group;
}
.pytis-form.browse-form table.data-table tr {
    page-break-inside: avoid;
}
.pytis-form.browse-form table.data-table tr.data-row > td,
.pytis-form.browse-form table.data-table tr.row-expansion > td,
.pytis-form.browse-form table.data-table tr.column-headings > th,
.pytis-form.browse-form table.data-table tr.group-heading > th {
    padding: 0.3em 0.5em;
    vertical-align: top;
    border: none;
}
.pytis-form.browse-form table.data-table tr.data-row > td.inline-edit {
    padding: 0;
}
.pytis-form.browse-form td.inline-edit .message,
.pytis-form.browse-form td.inline-edit form > .group,
.pytis-form.browse-form td.inline-edit .submit-buttons {
    margin: 0;
    border: none;
}

.pytis-form.browse-form table.data-table tr.column-headings th.column-heading,
.pytis-form.browse-form table.data-table tr.group-heading th {
    background-color: #eee;
    padding: 0.5em;
}
.pytis-form.browse-form table.data-table tr.column-headings th.column-heading.sortable-column {
    cursor: pointer;
}
.pytis-form.browse-form table.data-table tr.column-headings th span.sort-indicator {
    display: inline-block;
    float: right;
    padding: 3px 2px;
    width: 9px;
    height: 7px;
    background-position: right center;
    background-repeat: no-repeat;
}
.pytis-form.browse-form table.data-table tr.column-headings th span.sort-direction-asc {
    background-image: url(sort-asc.png);
}
.pytis-form.browse-form table.data-table tr.column-headings th span.sort-direction-desc {
    background-image: url(sort-desc.png);
}

.pytis-form.browse-form table.data-table.expansible-rows td.expansion-ctrl {
    position: relative;
    width: 15px;
    padding: 0;
}
@media print {
    .pytis-form.browse-form table.data-table.expansible-rows th.expansion-ctrl-heading,
    .pytis-form.browse-form table.data-table.expansible-rows td.expansion-ctrl {
	display: none;
    }
}
.pytis-form.browse-form table.data-table.expansible-rows td.expansion-ctrl a.expand-row {
    width: 15px;
    height: 1.7em;
    position: absolute;
    left: 0;
    top: 0;
    text-indent: -9999px;
    background-image: url(row-collapsed.png);
    background-position: 1px center;
    background-repeat: no-repeat;
}
.pytis-form.browse-form table.data-table.expansible-rows tr.expanded a.expand-row {
    background-image: url(row-expanded.png);
}
.pytis-form.browse-form table.data-table tr.row-expansion a.collapse-row {
    position: absolute;
    left: -9999px;
}

.pytis-form.browse-form table.data-table .tree-node {
    white-space: nowrap;
}
.pytis-form.browse-form table.data-table tr.data-row,
.pytis-form.browse-form table.data-table tr.row-expansion { background-color: #f8fafb; }
.pytis-form.browse-form table.data-table tr.data-row.even,
.pytis-form.browse-form table.data-table tr.row-expansion.even { background-color: #f1f3f2; }
.pytis-form.browse-form table.data-table tr.group-heading th { text-align: left; }

.pytis-form.browse-form table.data-table tr.data-row td.with-popup-menu {
    position: relative;
    padding-right: 20px;
}
.pytis-form.browse-form table.data-table .popup-menu-ctrl-widget {
    display: block;
    position: absolute;
    right: 0;
    top: 1px;
}
@media print {
    .pytis-form.browse-form table.data-table .popup-menu-ctrl-widget {
	display: none;
    }
}
.pytis-form.browse-form table.data-table pre {
    background-color: transparent;
    border: none;
}
.pytis-form.browse-form table.data-table span.tree-indent {
    padding-left: 0.6em;
}
.pytis-form.browse-form table.data-table tfoot td {
    background-color: #eee;
    border: 1px solid #ddd;
    padding: 0;
    text-align: right;
}

.list-form-controls {
    margin: 0.8em 0;
    padding: 0;
}
.list-form-controls.empty {
    margin: 0;
}
.list-form-controls .paging-controls.one-page {
    text-align: right;
}
.pytis-form .paging-controls {
    padding: 0.2em;
}
.list-form-controls .index-search-controls {
    margin-bottom: 0.2em;
}
.list-form-controls .offset,
.list-form-controls .buttons,
.list-form-controls .limit {
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
}
.list-form-controls .offset,
.list-form-controls .buttons {
    margin-right: 1em;
}
.list-form-controls .buttons button {
    margin-right: .3em;
}
.list-form-controls .current-page,
.list-form-controls .total-pages {
    font-weight: bold;
}
.list-form-controls .query button {
    margin-right: 0;
}
.list-form-controls .current-page { display: none; }

@media only screen and (max-width: 700px) {
.list-form-controls .index-search-controls { display: none; }
.list-form-controls.top .offset select { display: none; }
.list-form-controls.top .current-page { display: inline; }
.list-form-controls.top .limit { display: none; }
}

.pytis-form.browse-form #found-record {
    outline: #f80 solid 1px;
    outline-offset: -1px;
}
.pytis-form.browse-form .results,
.pytis-form.browse-form .no-records {
    font-weight: bold;
}

.pytis-form.list-view .list-item {
    margin: 1em 0;
    overflow: auto; /* force floating image containment by Block Formatting Context */
}
.pytis-form.list-view .tree-indent {
    padding-left: 0.7em;
    border-left: 2px solid #ddd;
    overflow: auto; /* collapse inner margins to get continuous left border */
}
.pytis-form.list-view #found-record {
    background-color: #fff4f0;
}

.pytis-form.list-view .list-item h3 {
    margin: 0.0;
    font-size: 1.2em;
}
.pytis-form.list-view .list-item .meta {
    color: #206573;
    margin: 0.4em 0;
}
.pytis-form.list-view table.grid {
    border-collapse: separate;
    border-spacing: 0.6em;
}
.pytis-form.list-view table.grid td {
    vertical-align: top;
}
.pytis-form label {
    margin-right: 0.25em;
}
.pytis-form.list-view table.grid h3 {
    margin-top: 0;
}
.pytis-form .field-label {
    white-space: nowrap;
    font-weight: bold;
    position: relative;
}
.pytis-form.query-fields-form .field-label {
    font-weight: normal;
}
.pytis-form .not-null-indicator {
    color: #dd0000;
}
.pytis-form .field-label .not-null-indicator {
    position: absolute;
    line-height: 1em;
    top: -.3em;
    right: -.2em;
}
.pytis-form .range-field-separator {
    padding: 0 3px;
}
.pytis-form .field-label.disabled { color: #444; }
.pytis-form .field-label.disabled .not-null-indicator { display: none; }

.pytis-form .radio-group {
    margin: .15em 0 0.25em 0;
}
.pytis-form .radio-group div, .pytis-form .radio-group span {
    white-space: nowrap;
}
.pytis-form .radio-group input {
    vertical-align: baseline;
    margin-right: 0.2em;
}
.pytis-form .radio-group label {
    font-weight: normal;
    display: inline-block;
    margin: 0.3em 0 0.1em 0.1em;
}

.pytis-form .group table {
    border-collapse: collapse;
}
.pytis-form.show-form td.ctrl,
.pytis-form.list-view td.ctrl,
.pytis-form td.label,
.pytis-form.show-form td.label { /* The last rule = show form embedded in an edit form. */
    line-height: 1.4em;
}
.pytis-form td.label {
    white-space: nowrap;
}
.pytis-form.edit-form td.label {
    /* To display labels vertically centered with form controls. */
    line-height: 2.1em;
}

.pytis-form.show-form a.print-field-link {
    float: right;
    display: block;
}

.pytis-form .group span.color-display {
    padding: 0 0.5em;
    border: 1px solid #bbb;
}
.pytis-form .group span.color-value {
    float: left;
    width: 6em;
}
.pytis-form.show-form, .pytis-form.edit-form {
    margin: 0;
    padding: 0;
}
.pytis-form.edit-form .help {
    color: #444;
    margin-bottom: 0.4em;
}
.pytis-form input.text-search-field,
.pytis-form.edit-form input.text-field,
.pytis-form.edit-form textarea,
.pytis-form.edit-form select {
    border: 1px solid #bbb;
    background-color: #fff;
}
.pytis-form.edit-form input.text-field:disabled,
.pytis-form.edit-form textarea:disabled,
.pytis-form.edit-form select:disabled {
    background-color: #e8e8e8;
}
.pytis-form input.fullsize,
.pytis-form textarea.fullsize {
    width: 100%;
    box-sizing: border-box;
}
.pytis-form .field .multiline.scrolled {
    overflow-y: scroll;
    resize: vertical;
    border: 1px solid #ddd;
    border-width: 1px 0;
}

@media print {
    .pytis-form .field .multiline.scrolled {
	height: auto !important;
	border: none;
    }
}

.pytis-form button.selection-invocation {
    margin-left: 2px;
}

@media screen {
    /* Avoid inline-block in print as it triggers Firefox bug which causes
     * that only the first page of the table is printed. */
    .pytis-form.browse-form > .ajax-container > .body,
    .pytis-form.browse-form > .body {
	display: inline-block;
    }
    .pytis-form.browse-form .summary {
	background-color: #eee;
	padding: .3em .5em;
	text-align: right;
    }
}
.pytis-form.list-view .summary {
    margin-top: 1.2em;
    border-top: 1px solid #ddd;
}
/*.pytis-form .invalid {
    background-color: #fdb;
}*/

.actions {
    margin: 1em 0;
}
.actions form {
    display: inline;
    margin: 0;
    padding: 0;
}
.actions a {
    vertical-align: top;
    padding-left: 0.5em;
}
.actions button {
    margin-bottom: 0.4em;
    margin-right: 0.4em;
}

.pytis-form.browse-form .new-row-button {
    position: relative;
    left: -1px;
    top: 3px;
    margin: 0;
}

.pytis-form.browse-form a.remove-row img {
    position: relative;
    top: 2px;
    left: 0;
    padding-left: 2px;
    padding-right: 3px;
}
.pytis-form.browse-form td.editable-cell .errors {
    border-width: 1px;
    margin: 1px 0;
}
.pytis-form.browse-form td.editable-cell form {
    white-space: nowrap;
}
/* Border-less table:
.pytis-form.browse-form.mapping table {
    border-collapse: separate;
    border-spacing: 0;
    border-width: 0;
}
.pytis-form.browse-form.mapping table tbody td {
    border-width: 0;
}
.pytis-form.browse-form.mapping table th {
    border-width: 1px 0;
} */

/* Date picker dialog */

.datepicker {
    position: absolute;
    width: 320px;
    clear: both;
    border: 1px solid #ddd;
    margin-top: 0.15em;
    border-radius: 5px;
    padding: 0;
    background-color: #fff;
    box-shadow: 1px 1px 12px rgba(0, 0, 0, .6);
}

.datepicker .header {
    cursor: default;
    background-color: #eee;
    padding: 7px;
    font-weight: bold;
    text-transform: uppercase;
    display: flex;
    justify-content: space-around;
    border-radius: 5px 5px 0 0;
}

.datepicker h2 {
    margin: 0;
    padding: 8px;
    display: inline-block;
    font-size: 1em;
    text-transform: none;
    font-weight: bold;
    border: none;
}

.datepicker .dates {
    width: 320px;
}

.datepicker .prev-year,
.datepicker .prev-month,
.datepicker .next-month,
.datepicker .next-year {
    padding: 4px 6px;
    width: 44px;
    margin: 1px;
}

.datepicker .dialog-ok-cancel-group {
    text-align: right;
    margin-top: 1em;
    margin-bottom: 1em;
    margin-right: 1em;
}

.datepicker .dialog-ok-cancel-group button {
    min-width: 4.2em;
    margin-left: .5em;
}
.datepicker button[value="ok"] {
}

.datepicker .month-year {
    display: inline-block;
    width: 12em;
    text-align: center;
}

.datepicker table.dates {
    padding-left: 1em;
    padding-right: 1em;
    padding-top: 1em;
}

.datepicker table.dates th,
.datepicker table.dates td {
    text-align: center;
}


.datepicker table.dates td {
    padding: 3px;
    margin: 0;
    line-height: inherit;
    height: 40px;
    width: 40px;
    border-radius: 5px;
    font-size: 15px;
    background: #eee;
    cursor: pointer;
}

.datepicker table.dates td.disabled {
    padding: 2px;
    border: none;
    height: 41px;
    width: 41px;
}

.datepicker table.dates td[tabindex="0"] {
    background-color: #444;
    color: white;
}

.datepicker table.dates td:not(.disabled):hover {
    padding: 2px;
    border: 1px solid #bbb;
    background-color: #f8f8f8;
}

.datepicker table.dates td[tabindex="0"]:hover {
    background-color: #555;
    border: 1px solid #222;
}


.datepicker table.dates td[aria-selected] {
    padding: 1px;
    border: 1px solid #555;
}

.datepicker .echo {
    padding: 0.25em 1em;
    height: 1em;
    background-color: #eee;
    border-radius: 0 0 5px 5px;
}
