:root {
    --w-color-primary-hue: 227;
    --w-color-primary-saturation: 100%;
    --w-color-primary-lightness: 25%;

    --w-color-secondary-hue: 248;
    --w-color-secondary-saturation: 100%;
    --w-color-secondary-lightness: 73%;
    --w-color-critical-100: #F03648;
    --w-color-text-label: #605AD9;
    --w-color-btn-light: #4CE0DC;
    --w-color-transparent: transparent;
    --w-color-checked-green: #5BC685;
    --w-color-success-green-text: #006528;
    --w-color-success-green-background: #5BC6854D;
}
h1, h2, h3, li {color: var(--w-color-text-label) !important;}
h1, h2 {font-size: 1.5rem !important}
li {font-size: 1rem !important}

/**
MESSAGES
some classes override Wagtail core.css
**/
.messages-icon {display: none;}
.messages .success {
    background-color: var(--w-color-success-green-background);
    color: var(--w-color-success-green-text) !important;
    padding: 0.3em 1.5em;
    border: 1px solid var(--w-color-success-green-text);
    font-weight: 500;
}
.messages .error {
    background-color: #f0364847;
    color: var(--w-color-critical-100) !important;
    padding: 0.3em 1.5em;
    border: 1px solid var(--w-color-critical-100);
    font-weight: 500;
}

@font-face {
    font-family: 'Poppins';
    src: url("../fonts/Poppins-Medium.bf59c687bc6d.ttf") format('ttf'),
}

input[type=text], input[type=password], input[type=email]{
    border: 0;
    border-bottom: 0.15rem solid;
    border-radius: 0;
    padding: 0 0.5rem;
}

input[type=text]:focus-visible, input[type=password]:focus-visible, input[type=email]:focus-visible {
  outline: none !important
}

.w-form-width {max-width: none;}

.listing {
    background-color: white;
}

.listing tbody {
    border-bottom: 1px solid var(--w-color-border-field-default);
}

.listing tbody tr {
    font-size: 1rem;
    font-weight: 500;
    color: var(--w-color-text-context);
    border-top: 1px solid var(--w-color-border-field-default);
}

.content {
    background-image: url("/static/dashboard/images/content_background.fb6a272620a8.png");
    background-size: cover;
}

.actionbutton a {
    border-radius: 2.4375rem;
    background-color: var(--w-color-surface-menus);
    border-color: var(--w-color-surface-menus);
}
button {min-width: 9rem}
.no-min-width {min-width: 0 !important;}
.button {border-radius: 2.5rem; font-size: 14px; font-weight: 500; color: white;}
a.button {width: 100%; text-align: center;}

/**
patient_qr_code.html
**/
.button-two {max-width: 300px; background: var(--w-color-primary); border-color: var(--w-color-primary);}

.button-white {
    margin: 0;
    margin-inline-start: 0 !important;
    background: #fff;
    color: var(--w-color-primary);
    border: var(--w-color-primary) 2px solid;
}

.button-longrunning {margin-bottom: 10px !important;}

.button-second {
    background: var(--w-color-primary);
    color: #fff;
    border: var(--w-color-primary) solid 1px;
    margin-inline-start: 0 !important;
}

.button-third {
    background: #fff;
    color: var(--w-color-primary);
    border: var(--w-color-primary) 2px solid;
    margin-inline-start: 0 !important;
}

.footer__container {
    background-color: transparent;
}

.milibra-appointment-calendar, .milibra-border {
    border-radius: 10px;
    border: 1px solid #C4C4C4;
    padding: 1rem;
    background: #FFF;
}

.milibra-border, .appointment-calendar {
    color: #001B7E;
}

.w-required-mark {
    color: unset;
}

.button-panel-center {display: flex;justify-content: center; gap: 1rem; flex-wrap: wrap;}
.button-panel-right {display: flex; justify-content: right; gap: 1rem; flex-wrap: wrap;}
.button-panel-center button, button-panel-right button{
    margin-inline-start: 0px !important;
}

.messages {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
}
.messages>ul {
    width: 80%;
    text-align: center;
}
.messages>ul>li {
    border-radius: 4rem;
}

/**
PATIENT SUMMARY
authentication/components/patient_summary.html
**/
.no-padding .nice-padding {padding-left: 0; padding-right: 0}
.patient-summary-container th {border-bottom: 1px solid #DADADA;}
.patient-summary-container table {border-collapse: unset; margin: unset;}
.patient-summary-edit {display: flex; justify-content: flex-end; padding-bottom: 10px;}
.patient-summary-edit a {
    color: var(--w-color-primary);
    cursor: pointer;
    font-size: 1rem;
    font-weight: 500;
    text-decoration: underline;
}

.w-panel--nested .w-panel__content {
    background-image: unset;
}

.thrapy-maintenance {
    display: flex;
    align-items: center;
}
th.icon-username::before, th.icon-username::before, th.icon-date::before, th.icon-status::before, th.icon-action::before,
.icon-therapy::before,
.icon-alias::before,
.icon-creation-date::before {
    margin-right: 0.5rem;
    vertical-align: middle;
    font-size: 16px;
}

th {
    font-family: "Poppins", sans-serif;
    color: #8C99CA;
}

th.icon-username::before, .icon-alias::before {content: url("../images/svg/alias.52f981151b85.svg");}
th.icon-terapia::before, .icon-therapy::before {content: url("../images/svg/therapy.ba3af7e5b050.svg");}
th.icon-date::before, .icon-creation-date::before {content: url("../images/svg/calendar.8d7890f49079.svg");}
th.icon-status::before {content: url("../images/svg/calendar.8d7890f49079.svg");}
td.icon-date::before {content: none;}
.icon-external {content: url("../images/svg/external-link.61399d9a9acf.svg"); margin-left: 8px}
.icon-filter {content: url("../images/svg/filter.6a6beda3fe58.svg"); margin-right: 8px}
.icon-delete {content: url("../images/svg/delete.f29981e2d64f.svg"); margin-right: 8px}

/**
ADD APPOINTMENT
add_appointment_inline.html
**/
.delete-appointment-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--w-color-transparent);
    color: var(--w-color-primary);
}

.external-link {
    display: flex;
    align-items: center;
    line-height: 1;
    color: #001B7E; text-decoration: underline
}

.no-therapy-field {
    background: var(--w-color-critical-100);
    padding: 5px 10px;
    text-align: center;
    border-radius: 42px;
    color: #fff;
    max-width: 65px;
}
/* start patient QR page */

.qr_code_container{display: flex;}
.qr_code_description_container{
    max-width: 600px;
    width: 100%;
    justify-content: center;
    display: flex;
    flex-direction: column;
    font-size: 14px;
    line-height: 21px;}

.qr_code_description_container>button{width: 50%}
.qr_code_image {max-width: 200px; margin: 50px;}
.qr_code_description_title{font-size: 18px;font-weight: bold;}
.qr_code_description {padding: 10px 0;}

/* end patient QR page */

/**
FILTER
dashboard/templates/wagtailadmin/shared/filters.html
some classes overrides Wagtail core.css
**/
.arrow-filter{content: url("../images/svg/arrow_filter.65a94ff334c8.svg"); margin-left: auto; transition: transform 0.3s ease;}
.arrow-filter.rotate {transform: rotate(180deg);}
.card-body .button-white {border-color: var(--w-color-secondary); color: var(--w-color-secondary)}
.card-header{border-bottom: none !important; background: white;}
.filterable {grid-row-gap: 2rem}
.filterable__filters #accordion {width: 250px}
.filterable__filters button[type=submit] {width: 100%}
.filterable__filters .filter-header {display: flex; align-items: center; cursor: pointer; background: white}
.filterable__filters i.icon-filter {font-size: 20px; color: #333333; margin-right: 8px;}
.filterable__filters .w-field__wrapper {margin-bottom: 20px;}
.filterable__filters p {font-size: 16px; font-weight: 700; color: var(--w-color-primary); margin-bottom: auto; padding: 10px}
.filterable__filters .w-field__label {display: block; margin-bottom: 5px; font-size: 16px; color: #333333;}
.filterable__filters .w-field--checkbox_select_multiple {padding: 0 0 10px 0 ;}
.filterable__filters .w-field__input label {display: flex; align-items: center; margin-bottom: 5px;}
.filterable__filters .w-field__input input[type="checkbox"] {margin: 0 10px 0 0;}
.filterable__filters .w-field__input input[type="checkbox"]:checked {background: var(--w-color-checked-green); color: white}
.filterable__filters .w-field__input input[type="checkbox"]:checked:before {background: white;}
.filterable__filters .w-field__input input[type="text"] {
  width: 100%;
  padding: 10px;
  border: 1px solid #eaeaea;
  border-radius: 4px;
  margin-bottom: 10px;
}
.filterable__filters .icon-spinner {margin-right: 5px; vertical-align: middle;}
.filterable__filters div.w-field--custom_date_from_to_range_widget > .w-field__input {font-size: 0; padding-bottom:10px;}
.filterable__filters div.w-field--custom_date_from_to_range_widget > .w-field__input input {font-size: 16px; margin: 5px 0;}
#id_attending_physician {font-size: 16px; width: 100%; margin-bottom: 10px;}
.filterable__filters .w-field__input input[type="text"] {font-size: 16px; padding: 10px 20px;}
.collapsing {height: auto !important; transition: none !important;}

input[name="date_joined"] {
    border: solid 2px #c4c4c4;
    border-radius: 5px;
    width: 100%;
    padding: 0 15px;
}


hr {margin: 0 0 1.5em 0 ;}

/* Therapy */
#milibra_appointments {width: 100%; color: #001B7E;
}
.milibra-border > .w-field__wrapper {max-width: 100%;}
#milibra_appointments td {
    width: 20%;
    padding: 10px 25px;
    text-align: center;
    font-size: 14px;
    font-weight: 300;
    font-family: "Poppins", sans-serif;
}
#milibra_appointments td.group_counter {
    border: none;
    font-weight: bold;
    font-size: 1.2em;
}


#milibra_appointments td:last-child {
    width: 40%;
}
#milibra_appointments td p {margin: 0; text-transform: uppercase; font-weight: 500; font-size: 14px;}
#milibra_appointments tr:last-child td > p {text-transform: capitalize}
#milibra_appointments thead > tr:first-child {border-bottom: none;}
#milibra_appointments tr {
    border-bottom: 1px solid #ddd;
}
#milibra_appointments td:last-child input[type=text] {
    border: none;
    border-bottom: 2px solid #001b7e !important;
    border-radius: inherit;
    text-align: left;
}
#milibra_appointments td input[type=text]{
    border: 1px solid #001b7e;
    border-radius: 5px;
    width: auto;
    text-align: center;
    max-width: 200px;
}
#milibra_appointments td input[type=time]{
    border: 1px solid #001b7e;
    border-radius: 5px;
    width: fit-content;
    text-align: center;
    max-width: 200px;
}

#milibra_appointments td:last-child > input[type=text] {border: none}

.milibra-border .last-update {font-size: 14px; font-style: italic }

.milibra-border .btn-action-text {font-size: 14px; text-decoration: underline; font-weight: 500}

.div-action-text {margin: 1em 0; cursor: pointer}

/**
PAGE HEADER
default class in the header included in wagtailsnippets/snippets/index.html
**/
.w-header .actionbutton:has(a[href*="inductionpatient"]), .w-header .actionbutton:has(a[href*="maintenancepatient"]){
    display: none;
}
header h1 > .icon {display: none}

.page-explorer .w-z-header {display: block;}
.w-z-header {display: none;}


.milibra-border .title, .appointment-calendar .title {
    font-size: 1.3em;
    font-weight: 600;
}

.milibra-border .subtitle, .appointment-calendar .subtitle {
    font-size: 1.2em;
    font-weight: 600;
}

.milibra-border .w-row-field {align-items: center;}
.milibra-border .w-field__input select { width: 150px; font-size: 14px}
.milibra-border .w-field__input input[name=start_date] { width: 150px; font-size: 14px; border: solid 1px #ccc; border-radius: 5px;}
.milibra-border .w-field__input input[name=start_date]::after {
    content: url("../images/svg/alias.52f981151b85.svg");
    /*position: absolute;*/
    /*  top: 50%;*/
    /*  right: 10px; !* Regola la distanza dell'icona dal bordo destro *!*/
    /*  transform: translateY(-50%);*/
      cursor: pointer;
}
#induction-therapy.milibra-border .w-field__input input[name=attending_physician]{ width: 250px; font-size: 14px;}
#induction-therapy.milibra-border .w-field__label, #organization-border.milibra-border .w-field__label {
    width: 400px;
    margin-right: 20px
}

.w-field__label, span.title-wrapper {
    color: var(--w-color-primary) !important;
}

td.title > ul.actions {display: none;}

.messages li.success span.buttons {display: none}

/**
MODAL
dashboard/admin/therapies.py
dashboard/modals/base_modal.html
**/
.fade{opacity: unset}
.modal {text-align: center;}
.modal-body-status-text {color: var(--w-color-primary); font-weight: bold}
.modal .modal-content {width: 500px; border-radius: 25px; padding-bottom: 1.5em; margin-top: unset}
.modal .modal-content .modal-header {text-align: right; border-bottom: none; display: block; padding: 0;}
.modal .modal-content .modal-header button {
    text-align: right;
    background: none;
    font-size: 30px;
    color: grey;
    padding: 5px 15px 0;
}
.modal .modal-content .modal-footer{border-top: none; display: block}
.modal .modal-content .modal-footer button {
    margin: 1rem
}
.modal .modal-content .modal-subtitle {
    font-size: 12px;
    font-weight: 400;
    color: var(--w-color-primary);
    font-style: italic;
    padding: 0.5rem;
}
.modal .modal-content .modal-title {
    font-size: 24px;
    font-weight: 500;
    margin: 0 20px 20px;
    color: var(--w-color-primary);
}
.modal .modal-content .modal-body {
    padding: 0.5rem 1.5rem;
    font-size: 14px;
    font-family: "Poppins", sans-serif;
    color: var(--w-color-primary);
}
.modal-text-area{width: 100%; height: 150px;}


#id_interruption_reason-label {
    font-size: 14px;
    font-family: "Poppins", sans-serif;
    font-weight: 300;
    padding: 0.5rem 1.5rem 1.5rem;
}

#id_interruption_date-label {
    font-size: 14px;
    font-family: "Poppins", sans-serif;
    font-weight: 300;
    padding: 0.5rem 1.5rem 1.5rem;
}

.therapy-summary-container {display: flex;}
.therapy-summary-container .info { width: 25%; }
.therapy-summary-container .info:last-child { width: 50%; }
.therapy-summary-container .value { font-size: 1.2em; }

.therapy-suspended-appointments {display: block;}
.therapy-suspended-appointments .error-message {
    padding-bottom: 0 !important;
    justify-content: start !important;
}
.therapy-suspended-appointments .appointments-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    padding: 1em;
}

.therapy .appointments li.milibra-border {width: 24%;}
.therapy .appointments li.milibra-border .title{
    font-size: 1.1em;
    margin: 0;
}
.therapy .appointments li.milibra-border .value{}
.w-panel.other-therapies {
    gap: 1em;
    display: flex;
    flex-direction: column;
}
.therapy .xdsoft_monthpicker button {min-width: 1rem;}

/*LOGIN*/
.login {background-image: url("../images/bg/bg-login.f37d55446d30.png"); background-size: cover;}
.login h1, .login p {margin:0}
.login .content-wrapper {background: var(--w-color-primary); color: #fff; padding: 1.5em 7em;
}
.login-text {
    font-size: 16px;
    margin-top: 2rem;
    font-weight: 500;
    color: #fff;
}
.login-logo {width: 100%}
.login .login-form .form-actions button {
    width: 8rem;
    background: var(--w-color-btn-light);
    border-color: var(--w-color-btn-light);
}
.login .login-form input[type=checkbox] {background: #fff; width: 1rem; height: 1rem;}
.login .login-form input[type=checkbox]:before {width: 0.5rem; height: 0.5rem;}
.login .login-form input[type=text], .login .login-form input[type=password] {
    background: #fff;
    color: black;
    border-radius: 0.5em;
    padding: 0.5em 1em;
    font-size: 16px;
}

.therapy input[type="date"] {
    border-color: var(--w-color-primary);
}

.therapy input[type="date"]::-webkit-calendar-picker-indicator {
    background-image: url("/static/dashboard/images/svg/modify.cb331b0acf4b.svg");
}

.therapy input[type="time"] {
    border-color: var(--w-color-primary);
}

.therapy input[type="time"]::-webkit-calendar-picker-indicator {
    background-image: url("/static/dashboard/images/svg/modify.cb331b0acf4b.svg");
}

.therapy .error-message {
    padding-bottom: 1em;
    font-size: initial;
    justify-content: center;
    display: flex;
    align-items: end;
    gap: 0.8em;
}

.login .messages {margin-bottom: 0}

.create-organization-main label.w-field__label{
    display: block !important;
    color: var(--w-color-secondary) !important;
}

.login .login-form label.w-field__label {display: none;}

.header-appointment {
    display: flex;
    justify-content: space-between;
}

.header-appointment .header-subtitle {
    margin: 0.4em 4em 0em 0em;
}

/** OPENING DAYS **/
#organization-border .opening-day-text {margin: 2em 0.75em; font-style: italic;}
#organization-border .opening-day-field {margin: 0.5em;}
#organization-border .opening-day-field input, #organization-border .opening-day-field select{
    border: none;
    border-bottom: 2px solid;
    border-radius: initial;
    width: 20rem;
    font-size: 16px}
#organization-border .opening-day-field input[type=text] {padding-left: 20px}

.patient-status {font-weight: 700;}

.milibra-hr{margin-top: 1.5em; background-color: #94A2A2; height: 0.05em;}
.milibra-p{color: var(--w-color-primary); font-family: var(--w-font-sans); font-style: italic; margin-left: 0.5em;}

.opening-day-text{margin: 1em 0.75em 2em 0.75em; font-style: italic;}

.sidebar-main-menu>ul>li>a {text-decoration: none;}
body.ready .sidebar-menu-item__link {text-decoration: none;}
/** END OPENING DAYS **/

/** INLINE PANEL **/
.button-add {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
}

.collapse-icon {
    transition: transform 0.3s ease;
    transform: rotate(180deg);
}

.collapsed .collapse-icon {
    transform: rotate(0deg);
}

.inline-panel-button-container {
    display: flex;
    flex-direction: row;
    margin-top: 1.25em;
    justify-content: flex-end;
}

.inline-panel-button-container button:first-child {
    margin-right: 0.6em;
}

.inline-panel-container {
    border: 1px solid #C4C4C4;
    padding: 1.5em 3em;
    margin-bottom: 1.25em;
    border-radius: 1em;
    background: white;
}

.inline-panel-container h2 {
    color: var(--w-color-primary);
    font-size: 1rem;
}

.w-panel__header.inline-panel-container-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-left: 2em;
}

.inline-panel-container hr {
    border: thin solid black;
    margin: 1.25em 0;
}

.inline-panel-container input {
    border-color: var(--w-color-primary);
}

.inline-panel-row {
    display: flex;
    align-items: center;
    margin-bottom: 1.25em;
}

.inline-panel-row > div:nth-child(1) {
    font-size: 1rem;
    font-weight: 700;
    color: var(--w-color-primary);
    width: 10em;
}

.inline-panel-row > div:nth-child(2) {
    margin-left: 3em;
    width: 40em;
}

.inline-panel-row-container {
    margin: 2em 0 3em 0;
}

/** END INLINE PANEL **/

/**
NOTE WIDGET
dashboard/widgets/appointments/note_widget.html
**/
.note-widget {display: flex; align-items: center; justify-content: center;}
.hidden {display: none}
.therapy-note-button {background: var(--w-color-transparent); min-width: 4rem}
.therapy-note-icon {min-width: 2rem}
.unsaved-note {color: var(--w-color-critical-100)}

.modal-content {
    padding: 20px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}

.modal-actions {
    align-items: center;
    justify-content: center;
    display: flex;
    margin-top: 2rem;
}

/**
START USER MANUAL PAGE
dashboard/templates/dashboard/views/users_manual.html
**/
a.button.button-second { width: auto }
.user-manual-description { color: var(--w-color-primary); line-height: 24px; font-size: 1rem}

/**
STATUS WIDGET
dashboard/templates/dashboard/widgets/appointments/status_widget.html
**/
.therapy-status-button {
    cursor: pointer;
    border: none;
    padding: 8px;
    border-radius: 4px;
    transition: filter 0.3s;
    background-color: var(--w-color-transparent);
    min-width: auto;
}
.therapy-status-button.active .therapy-status-icon {opacity: 1;}
.therapy-status-button:hover .therapy-status-icon {opacity: 0.8;}
.status-widget-btn-container {display: flex; align-items: center; justify-content: center;}
.status-widget-text-suspended {color: #F03648; font-size: 14px; font-weight:700}

/**
SCROLLBAR
used is dashboard/views/standard_therapy_calendar_edit_view.html
**/
.horizontal-scrollbar {overflow-y: hidden; overflow-x: auto;}

/**
RESET PASSWORD
**/
.login #id_username-label{color:white !important}
.login #id_email-label{display:none}
/** END USER MANUAL PAGE **/
#id_maintenance_first_appointment{margin:30px 0}

body.portrait #rotate-device {display: block; background: white; padding: 40px; align-content: center;}
#rotate-device {display: none; position: fixed; text-align: center; z-index: 1001; height: 100vh; width: 100vw;}
#rotate-device img {width: 100px; height: 100px; display: block; margin: 0 auto;}
#rotate-device p {margin-top: 10px; font-size: 16px; color: black;}
.background-open-sidebar-tablet {filter: brightness(0.5);}

/**
 * MEDIA QUERIES
 *
 * This section handles responsive behavior for different screen sizes.
 *
 * DEPENDENCY:
 * The `dashboard.js` file relies on the tablet max-width value.
 * If you modify the tablet media query, update the `tabletMediaQuery` in `dashboard.js`.
 */

/** laptop **/
@media screen and (max-width: 1480px) {
    .filterable__filters {justify-items: end; grid-row: 1}
    .filterable {grid-template-columns:auto;}
    #collapseOne.collapse.show {
        position: absolute;
        top: 60px;
        border-radius: 10px;
        border: 1px solid #C4C4C4;
        background: #FFF;
        padding: 1rem;
        height: 60vh;
        overflow: scroll;
        overflow-x: hidden;
    }
}

/** tablet **/
@media screen and (max-width: 1279px) {
     .homepage #main > div {padding-inline-start: 60px;}
     .nice-padding {padding-inline-end: 20px; padding-inline-start: 20px}
     .sidebar-collapsed .wrapper, .wrapper {padding-inline-start: 60px}
     .w-header .row {padding-inline-end: 20px}
     .w-header.w-header--with-padding, .w-header>.row {padding-inline-start: 20px;}
}

/** portrait **/
@media screen and (orientation: portrait) {
    * {pointer-events: none;}
    .sidebar-collapsed .wrapper, .wrapper {padding-inline-start: 0;}
}