@import url('widgets.css');

/* FORM ROWS */

.form-row {
    overflow: visible;
    padding: 0 12px;
    font-size: 11px;
    border-bottom: 1px solid #eee;
}

.form-row img, .form-row input {
    vertical-align: middle;
}

form .form-row p {
    padding-left: 0;
    font-size: 11px;
}

/* MULTI-COLUMN FORM ROW LAYOUT */

/* Horizontal flex row for multi-field rows (Check in / Check out / Nights, etc.) */
.form-multiline {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: flex-start;
    padding: 12px 0;
}

.form-multiline > div {
    flex: 1 1 180px;
    min-width: 0;
}

/* Single-field rows */
.form-row > div > .flex-container {
    padding: 12px 0;
}

/* Each field box: label on top, input below */
.fieldBox,
.flex-container.fieldBox {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Checkbox rows: toggle + label side by side */
.fieldBox.checkbox-row,
.flex-container.fieldBox.checkbox-row {
    flex-direction: row !important;
    align-items: center;
    gap: 8px;
    padding-top: 24px; /* align vertically with neighbouring field inputs */
}

.checkbox-row label {
    margin-bottom: 0 !important;
    padding-top: 0 !important;
}

/* Inputs fill their column */
.fieldBox input:not([type="checkbox"]):not([type="hidden"]),
.fieldBox select,
.fieldBox textarea,
.flex-container input:not([type="checkbox"]):not([type="hidden"]),
.flex-container select,
.flex-container textarea {
    width: 100%;
    box-sizing: border-box;
}


/* FORM LABELS */

form h4:not(.fieldset-heading) {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

label {
    display: block;
    font-weight: 600 !important;
    color: #374151;
    font-size: 12px;
    margin-bottom: 4px;
}

.flex-container {
    /* container reset */
}

.required label, label.required {
    font-weight: 700 !important;
    color: #111827 !important;
}

/* RADIO BUTTONS */

form ul.radiolist li {
    list-style-type: none;
}

form ul.radiolist label {
    float: none;
    display: inline;
}

form ul.inline {
    margin-left: 0;
    padding: 0;
}

form ul.inline li {
    float: left;
    padding-right: 7px;
}

/* ALIGNED FIELDSETS */

/* Reset old float-based aligned label — labels now sit above inputs */
.aligned label {
    display: block;
    padding: 0;
    float: none;
    width: auto;
}

.aligned ul label {
    display: inline;
    float: none;
    width: auto;
}

.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField {
    width: 350px;
}

form .aligned p, form .aligned ul {
    margin-left: 0;
    padding-left: 0;
}

form .aligned table p {
    margin-left: 0;
    padding-left: 0;
}

form .aligned p.help {
    padding-left: 0;
}

.inline-group .aligned label {
    width: auto;
    float: none;
    display: block;
}

.wide label {
    width: auto !important;
}

form .wide p {
    margin-left: 0;
}

form .wide p.help {
    padding-left: 0;
}

.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField {
    width: 450px;
}

/* COLLAPSED FIELDSETS */

fieldset.collapsed * {
    display: none;
}

fieldset.collapsed h2, fieldset.collapsed {
    display: block !important;
}

fieldset.collapsed h2 {
    color: #999;
}

fieldset.collapsed .collapse-toggle {
    background: transparent;
    display: inline !important;
}

/* MONOSPACE TEXTAREAS */

fieldset.monospace textarea {
    font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
}

/* SUBMIT ROW */

.submit-row {
    padding: 5px 7px;
    text-align: right;
    background-color: white;
    border: 1px solid #ccc;
    margin: 5px 0;
    overflow: hidden;
}

body.popup .submit-row {
    overflow: auto;
}

.submit-row input {
    margin: 0 0 0 5px;
}

.submit-row p {
    margin: 0.3em;
}

.submit-row p.deletelink-box {
    float: left;
}

.submit-row .deletelink {
    background: url(../img/icon-deletelink.svg) 0 50% no-repeat;
    padding-left: 14px;
}

/* CUSTOM FORM FIELDS */

.vSelectMultipleField {
    vertical-align: top !important;
}

.vCheckboxField {
    border: none;
}

.vDateField, .vTimeField {
    margin-right: 2px;
}

.vURLField {
    width: 30em;
}

.vLargeTextField, .vXMLLargeTextField {
    width: 48em;
}

.flatpages-flatpage #id_content {
    height: 40.2em;
}

.module table .vPositiveSmallIntegerField {
    width: 2.2em;
}

.vTextField {
    width: 20em;
}

.vIntegerField {
    width: 5em;
}

.vForeignKeyRawIdAdminField {
    width: 5em;
}

/* INLINES */

.inline-group {
    padding: 0;
    border: 1px solid #ececec;
    margin: 10px 0;
    border-radius: 10px;
}

.inline-group .aligned label {
    width: auto;
    float: none;
    display: block;
}

.inline-related {
    position: relative;
}

.inline-related h3 {
    margin: 0;
    color: #4a3f2f;
    padding: 10px 14px;
    background-color: #e8dfc8;
    border-bottom: 1px solid #d4c9a8;
    font-size: 13px;
    font-weight: 600;
    align-items: center;
    justify-content: space-between;
}

.inline-related h3 span.delete {
    float: right;
}

.inline-related h3 span.delete label {
    margin-left: 2px;
    font-size: 11px;
}

.inline-related fieldset {
    margin: 0;
    background: #fff;
    border: none;
    padding: 13px 10px 10px 10px;
    margin-left: -11px;
    margin-right: -11px;
}

.inline-related fieldset.module h3 {
    margin: 0;
    text-align: left;
    border-bottom: none;
    border-top: none;
    font-weight: 600;
    padding: 10px 16px;
    color: white;
    background: linear-gradient(90deg, rgb(149 91 247 / 0.85), rgb(178 132 248 / 0.85));
}

/* Fieldset section headings (h4) — Hotel Information, Stay Details, Room & Meal Details */
h4.fieldset-heading {
    margin: 0 0 0 -16px !important;
    width: calc(100% + 32px) !important;
    padding: 10px 16px !important;
    border: none !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: white !important;
    background: linear-gradient(90deg, rgb(149 91 247 / 0.85), rgb(178 132 248 / 0.85));
    border-radius: 0;
    display: block;
}

.inline-related fieldset.module {
    border-top: none;
    overflow: hidden;
}

/* Last row in a fieldset has no bottom divider */
.djn-form-row-last {
    border-bottom: none !important;
}

.inline-group .tabular > fieldset.module {
    border: none;
    border-bottom: 1px solid #ddd;
}

.inline-related.tabular fieldset.module table {
    width: 100%;
}

.last-related fieldset {
    border: none;
}

.inline-group .tabular tr.has_original td {
    padding-top: 2em;
}

.inline-group .tabular tr td.original {
    padding: 2px 0 0 0;
    width: 0;
    _position: relative;
}

.inline-group .tabular th.original {
    width: 0px;
    padding: 0;
}

.inline-group .tabular td.original p {
    position: absolute;
    left: 0;
    height: 1.1em;
    padding: 2px 7px;
    overflow: hidden;
    font-size: 9px;
    font-weight: bold;
    color: #666;
    _width: 700px;
}

.inline-group ul.tools {
    padding: 0;
    margin: 0;
    list-style: none;
}

.inline-group ul.tools li {
    display: inline;
    padding: 0 5px;
}

.inline-group div.add-row,
.inline-group .tabular tr.add-row td {
    color: #666;
    padding: 3px 5px;
    border-bottom: 1px solid #ddd;
    background-color: #e1e1e1;
}

.inline-group .tabular tr.add-row td {
    padding: 4px 5px 3px;
    border-bottom: none;
}

.inline-group ul.tools a.add,
.inline-group div.add-row a,
.inline-group .tabular tr.add-row td a {
    background: url(../img/icon-addlink.svg) 0 50% no-repeat;
    padding-left: 14px;
    font-size: 11px;
    outline: 0; /* Remove dotted border around link */
}

.nested-inline {
    margin: 5px;
}

td > .nested-inline {
    margin: 0px;
}

.nested-inline-bottom-border {
    border-bottom: 1px solid #DDDDDD;
}

.no-bottom-border.row1 > td {
    border-bottom: solid #EDF3FE 1px;
}

.no-bottom-border.row2 > td {
    border-bottom: solid white 1px;
}

.empty-form {
    display: none;
}