html {
    background-color: #f8f9f4;
    font-family: 'Lato';
}

a {
    text-decoration: none;
}

table {
    text-align: left;
    border-collapse: collapse;
    font-size: 14px;
    width: 100%;
}

table td, th {
    border: solid 1px white;
    padding: 5px 10px;
    cursor: default;
    min-width: max-content;
}

th {
    padding: 10px 15px;
    position: sticky;
    top: 0;
    background: #f3f0eb;
    border: none;
}

th:first-of-type {
    border-top-left-radius: 10px;
}

th:last-of-type {
    border-top-right-radius: 10px;
}

tr {
    transition: .2s;
}

tr:nth-child(even){
    background-color: white;
}

tr:nth-child(odd){
    background-color: #f0f0f0;
}

tr:first-of-type {
    background-color: transparent;
}

tr:hover {
    background-color: #ddd;
}

tr:last-of-type {
    border-bottom-left-radius: 10px;
}

a:visited {
    color: #555;
}

.page_title {
    font-size: 1.5em;
    text-align: left;
    user-select: none;
    color: #484848;
}

.login_card {
    font-size: 1em;
    max-width: 300px;
    display: block;
    margin: auto;
    margin-top: 15%;
}

.pwd_box {
    width: 100%;
    padding: 0px;
    padding-bottom: 4px;
    border: none;
    outline: none;
    border-bottom: solid #b5b5b5 2px;
    background: none;
    margin-bottom: 20px;
    font-size: 1em;
}

.pwd_submit {
    appearance: none;
    background-color: white;
    color: black;
    font-size: .9em;
    width: 100%;
    margin: auto;
    text-align: center;
    border: none;
    border-radius: .4em;
    padding: 5px;
    transition: .2s;
    user-select: none;
    display: block;
}

.pwd_submit:hover {
    background-color: wheat;
}

.pwd_submit:active {
    padding: 4px 0px;
    width: 97%;
}

.button_area {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.button {
    position: relative;
    display: flex;
    width: fit-content;
    height: fit-content;
    background-color: transparent;
    border:solid #b5b5b5 2px;
    color: gray;
    border-radius: 7px;
    padding: 10px 15px;
    cursor: pointer;
    align-items: last baseline;
    user-select: none;
    font-size: 12px;
    transition: .2s;
}

.button_icon {
    margin-right: 10px;
}

.plus_button_icon {
    margin: auto;
}

.show_password_button {
    width: fit-content;
    text-align: center;
    color: gray;
    cursor: pointer;
    user-select: none;
    font-size: 12px;
    transition: .2s;
    padding: 5px;
    margin: 1rem auto 0rem;
}

.show_password_button:hover {
    color: black;
}

.search_area {
    margin-left: 20px;
    margin-right: 50px;
}

.close_search_icon {
    display: inline;
    color: gray;
    font-size: 12px;
    margin-left: -2.5em;
    cursor: pointer;
    position: relative;
    z-index: 1;
}

.guest_search {
    width: 200px;
    font-size: 1em;
    outline: none;
    padding: .5em;
    border: none;
    border-radius: .5em;
    background: transparent;
}

.search {
    position: relative;
    display: inline;
    width: fit-content;
    margin: .4em .6em .4em 0em;
    padding: 4px 30px;
    background-color: transparent;
    border:solid 2px #b5b5b5;
    color: gray;
    border-radius: 7px;
    cursor: text;
    user-select: none;
    font-size: 12px;
    transition: .2s;
    outline: none;
}

.search_icon {
    margin: auto 0px auto -18px;
    color: gray;
    font-size: 12px;
    display: inline;
}

.close_settings_icon {
    color: gray;
    font-size: 12px;
    display: inline;
    position: absolute;
    right: 8px;
    top: 12px;
    cursor: pointer;
    transition: .2s;
}

.close_settings_icon:hover {
    color: black;
}

.end_session {
    position: absolute;
    top: 0px;
    right: 0px;
    margin: 10px;
    background-color: transparent;
    border:solid #aaa 2px;
    color: gray;
    border-radius: 7px;
    padding: 5px 15px;
    cursor: pointer;
    user-select: none;
    font-size: 12px;
    transition: .2s;
}

.end_session:hover, .button:hover {
    background-color: #555;
    border: #555 solid 2px;
    color: white;
}

.end_session:active {
    background-color: black;
}

.plus_button {
    padding: 12px 14px;
}

.plus_button:hover {
    background-color: blue;
}

.button:active {
    background-color: darkblue;
    border:solid darkblue 2px;
}

.buton_active {
    color: white;
    background-color: darkblue;
    border: darkblue solid 2px;
}

.settings_title {
    font-size: 2em;
    margin: auto 0px 40px;
    color: #484848;
    user-select: none;
}

.enlace_title {
    color: #b1b1b1;
    user-select: none;
    font-size: 22px;
}

.enlace_logo {
    max-width: 3em;
    margin-right: 10px;
}

.settings_page {
    display: block;
    margin: auto;
    padding: 1em;
    max-width: 1260px;
    transition: .2s;
    pointer-events: all;
}

.blur {
    filter: blur(6px);
    -webkit-filter: blur(6px);
    transition: .2s;
    pointer-events: none;
}

.row_card {
    background-color: white;
    border-radius: .5em;
    opacity: 0;
    display: none;
    position: fixed;
    max-width: 25em;
    min-width: 20em;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
    padding: 1em;
    z-index: 10;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    user-select: none;
    transition: .2s;
}

.scroll_card{
    max-height: 90vh;
    overflow-y: scroll;
}

.save_wbg {
    display: inline;
    text-align: center;
    height: fit-content;
    border: solid #d9d9d9 .15em;
    color: white;
    background: #7979ff;
    border-radius: .5em;
    padding: .5em 1.5em;
    margin: .4em .6em .4em 0em;
    cursor: pointer;
    align-items: last baseline;
    user-select: none;
    font-size: .8em;
    transition: .2s;
}

.save_wbg:hover {
    color: white;
    border-color: white;
    background-color: blue;
}

.close_wbg {
    color: #d9d9d9;
    border: solid #d9d9d9 .15em;
    padding: .5em 1em;
    margin: .4em .6em .4em 0em;
    height: fit-content;
    border-radius: .5em;
    text-align: center;
    cursor: pointer;
    align-items: last baseline;
    user-select: none;
    font-size: .8em;
    transition: .2s;
}

.delete_icon {
    color: lightgray;
    display: inline;
    transition: .2s;
    cursor: pointer;
}

.delete_logo {
    color: white;
    font-size: 2em;
    flex: auto;
}

.delete_logo_circle {
    background-color: red;
    border-radius: 100%;
    height: 48px;
    width: 48px;
    text-align: center;
    margin-right: 1em;
    display: flex;
    align-items: center;
}

.delete_icon:hover {
    color: red;
}

.delete_popup_title {
    font-size: 1.2em;
    font-weight: bold;
    margin: auto auto 1.5em;
}

.delete_popup_text {
    color: gray;
    font-size: .9em;
}

.delete_button {
    flex: auto;
    color: white;
    background: red;
    border: solid red .15em;
    padding: .5em 1em;
    margin: .4em .6em .4em 0em;
    height: fit-content;
    border-radius: .5em;
    text-align: center;
    cursor: pointer;
    user-select: none;
    font-size: .8em;
    transition: .2s;
}

.delete_button:hover {
    background: darkred;
}

.close_wbg:hover {
    background-color: #555;
    color: white;
    border-color: #555;
}

.new_guest_popup_title {
    color: black;
    font-size: 24px;
    text-align: left;
    font-weight: bold;
    margin: auto auto 15px;
}

.edit-guest-button {
    position: absolute;
    right: .8em;
    color: gray;
    cursor: pointer;
    font-size: .9em;
    transition: .2s;
}

.edit-guest-button:hover {
    color: darkblue;
}

.remove_guest_button {
    position: absolute;
    right: .5em;
    color: gray;
    cursor: pointer;
    font-size: .9em;
    transition: .2s;
    top: 3em;
}

.remove_guest_button:hover {
    color: red;
}

.spinner {
    position: absolute;
    right: .8em;
    color: darkblue;
    cursor: wait;
    font-size: .9em;
    transition: .2s;
    animation-name: spinner-anim;
    animation-duration: 1000ms;
    animation-iteration-count: infinite;
    animation-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-animation-name: spinner-anim;
    -webkit-animation-duration: 1000ms;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-iteration-count: cubic-bezier(0.165, 0.84, 0.44, 1);
}

.card_text {
    color: #8c8c8c;
    font-size: 12px;
    padding: 0em .5em;
    width: max-content;
}

.edit_G1_N {
    color: darkblue;
    min-height: auto;
    font-weight: bold;
    font-size: 20px;
    text-align: left;
    outline: none;
    background: transparent;
    border: none;
    border-radius: 5px;
    padding: 2px 5px;
    transition: .2s;
}

.edit_G1_N:focus {
    background-color: antiquewhite;

}
.input_t_NG {
    font-size: .9em;
    max-width: 20em;
    outline: none;
    border: none;
    background: #dbdbdba3;
    padding: .5em;
    border-radius: .6em;
    display: inline-block;
    width: 100%;
    transition: .2s;
}

.input_t_NG:focus {
    background: #e7e7e7a3;
}

.input_p_NG {
    font-size: .9em;
    outline: none;
    border: none;
    background: #e8e8e8;
    color: black;
    padding: .5em;
    border-radius: .6em;
    display: inline-block;
    transition: .2s;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
}


.returnMain {
    display: block;
    margin: 4em auto;
    text-align: center;
    transition: .2s;
    text-decoration: none;
}

.returnMain:hover {
    color: white;
}

.table_edit_guest tr, .table_edit_guest td {
    background-color: white;
}

table_edit_guest tr:hover, .table_edit_guest td:hover {
    background-color: white;
}

.metric_row {
    display: flex;
    margin-bottom: 1em;
    flex-wrap: wrap;
}

.add_table_box {
    text-align: center;
    width: 5em;
    padding: 1em;
    margin: .6em 1.20em .6em 0em;
    border-radius: 10px;
    user-select: none;
    border: dashed white 2px;
    cursor: pointer;
    transition: .2s;
    height: fit-content;
}

.add_guest_box {
    text-align: center;
    width: fit-content;
    padding: .2em;
    margin: .6em 1.20em .6em 0em;
    border-radius: 10px;
    user-select: none;
    border: dashed white 2px;
    cursor: pointer;
    transition: .2s;
    height: fit-content;
}

.add_table_title {
    font-weight: bold;
    color: darkblue;
    font-size: .9em;
    margin-bottom: .6em;
    text-align: left;
}

.add_table_box:hover {
    background-color: #ffffffa3;
}

.add_table_box:hover .add_table_icon {
    color: darkblue;
}

.add_table_icon {
    padding: 5px 10px;
    font-size: 1.4em;
    color: white;
    transition: .2s;
}

.add_guest_contents {
    display: flex;
    align-items: end;
}

.add_table_box_active {
    text-align: center;
    width: 10em;
    padding: 1em;
    margin: .6em 1.20em .6em 0em;
    border-radius: 10px;
    user-select: none;
    border: dashed white 2px;
    cursor: pointer;
    transition: .2s;
}

.add_table_box_active_name {
    font-size: .83em;
    background: #fff6;
    border: none;
    padding: 0.4em;
    width: 93%;
    border-radius: .3em;
    font-weight: bold;
    color: black;
    outline: none;
    margin-bottom: .4em;
}

.add_table_box_active_size {
    width: 94%;
    background: #ece7de;
    border: none;
    outline: none;
    padding: .4em;
    margin-bottom: .4em;
    border-radius: .4em;
    font-size: .83em;
    font-weight: bold;
}

.add_table_button_area {
    display: flex;
}

.create_button {
    background: #ffffff73;
}

.table_options {
    width: 100%;
    background: #ece7de;
    border: none;
    outline: none;
    padding: .4em;
    margin: .3em auto;
    border-radius: .4em;
    font-size: .83em;
}


.table_title {
    font-weight: bold;
    color: black;
    font-size: 1.1em;
    text-align: left;
}

.table_box {
    text-align: center;
    width: 6em;
    height: fit-content;
    padding: 1em;
    margin: .6em 1.20em .6em 0em;
    background: #ffffffa3;
    border-radius: 10px;
    user-select: none;
    transition: .2s;
}

.table_count{
    padding: 15px 10px;
    font-size: 1.2em;
    color: #8e8e8e;
}

.table_descr {
    text-align: left;
    font-size: .7em;
    color: #8e8e8e;
    text-align: center;
}

.table_edit_icon {
    float: right;
    margin-top: -1.4em;
    margin-right: -1.5em;
    padding: .3em .4em;
    color: white;
    background: lightgray;
    border-radius: 100px;
    cursor: pointer;
    transition: .2s;
}

.table_edit_icon:hover {
    background: darkblue;
}

.metric_box {
    text-align: center;
    width: 210px;
    padding: 15px;
    margin: .5em;
    background: #ffffffd6;
    border-radius: 15px;
    user-select: none;
}

.metric_value {
    padding: 30px 10px;
    font-size: 30px;
    color: #8e8e8e;
}

.metric_title {
    color: black;
    font-size: 20px;
    text-align: left;
    margin: auto;
}

.metric_descr {
    text-align: left;
    margin: .3rem auto;
    font-size: 15px;
    color: #8e8e8e;
}

.sm_metric_box {
    font-size: .8em;
    color: #808080;
    margin: auto 1.2em .7em 0px;
    padding: .5em;
    border: solid 1px #aaa;
    border-radius: .4em;
    user-select: none;
}

.subsect_name {
    color: gray;
    font-size: 1.3em;
    font-weight: bold;
    margin: 10px 0px;
    user-select: none;
}

.rsvp_ans_info {
    display: flex;
    align-items: center;
}

.rsvp_ans_info_icon {
    font-size: 20px;
    color: #7474ff;
    cursor: pointer;
    margin-right: 10px;
    background-color: white;
    border-radius: 100px;
    padding: 1px 1px 1.5px 1.5px;
}

.rsvp_ans_info_txt {
    position: absolute;
    display: none;
    font-size: 14px;
    color: white;
    background: #7474ff;
    padding: 5px 10px;
    margin-left: 40px;
    border-radius: 10px;
    opacity: 0;
    transition: .2s;
}

.exp_label {
    color: #aaa;
    font-size: 12px;
    border: solid 1px #aaa;
    border-radius: 5px;
    padding: 5px;
    margin: 10px;
    width: fit-content;
    user-select: none;
}

.table_area {
    margin: 15px 0px;
    border-radius: 10px;
    background: white;
    width: 100%;
    overflow: auto;
    scroll-behavior: smooth;
}

.sel_opt {
    background: #7474ff;
    color: white;
}

.section_bar {
    display: flex;
    height: 50px;
    margin-bottom: 15px;
}

.section_option_container {
    padding: 10px 0px;
    border-bottom: 0px solid #c34d5f00;
    margin: 0px 30px 10px 0px;
    user-select: none;
    cursor: pointer;
    transition: .2s;
}

.section_option_container:hover {
    border-bottom: 2px solid #c34d5f;
}

.section_option {
    color: #484848;
    font-weight: lighter;
}

.section_option_container_selected {
    border-bottom: 2px solid #c34d5f;
}

.guestNameCell {
    position: sticky;
    left: 0;
    height: 100%;
    background: #e8e2d8ed;
    z-index: 1;
    min-width: 8em;
}

.tag_cell {
    min-width: 10em;
}

.guest2NameCell {
    min-width: 10em;
}

.no_cell {
    min-width: 1em;
}

.create_table_err {
    font-size: .8em;
    margin-top: 1em;
    color: darkred;
    user-select: none;
}

.edit_menu {
    display: none;
    transition: .2s;
    opacity: 0;
    text-align: center;
    width: 5em;
    padding: 1em;
    margin: .6em 1.20em .6em 0em;
    background: #0000000a;
    border-radius: 10px;
    user-select: none;
}

.guest_table_list_box {
    display: none;
    transition: .2s;
    opacity: 0;
    text-align: center;
    padding: 1em;
    min-width: 6em;
    margin: .6em 1.20em .6em 0em;
    background: #0000000a;
    border-radius: 10px;
    user-select: none;
}

.edit_table_title {
    font-weight: bold;
    color: black;
    font-size: .9em;
    margin-bottom: .6em;
    margin-right: 1em;
    text-align: left;
}

.edit_table_options {
    width: 100%;
    background: #ece7de;
    border: none;
    outline: none;
    padding: .4em;
    margin-bottom: .3em;
    border-radius: .4em;
    font-size: .83em;
}

.add_guest_to_table:hover {
    color: darkblue;
}

.del_table {
    font-size: .8em;
    color: red;
    width: fit-content;
    margin: .7em auto auto auto;
    padding: .4em;
    border-radius: .4em;
    transition: .2s;
}

.del_table:hover {
    background-color: red;
    color: white;
}

.tag {
    font-size: .8em;
    padding: .5em .5em .5em;
    background: cornflowerblue;
    border-radius: .3em;
    color: white;
    margin: .1em;
    display: inline-block;
    text-align: center;
    width: fit-content;
    transition: .2s;
}

.layout {
    margin-bottom: 2em;
}

.layoutP{
    max-width: 1000px;
    width: 80vw;
}

.date_col {
    font-size: 0.8em;
    min-width: 5em;
}

.date_in_col {
    font-size: 1.1em;
}

.msg_col {
    min-width: 550px;
}

.guest_name_col {
    min-width: 80px;
}

.note {
    font-size: 12px;
    text-align: left;
    color: #c4c4c4;
    margin: 1em 0px;
}

.delete_note {
    font-size: .7em;
    margin-top: .5em;
    text-align: left;
    color: #8e8e8e;
}

.button_loader {
	width: 25px;
	height: 25px;
	background-color: darkblue;
	border-radius: 100%;
	-webkit-animation: sk-scaleout 1.0s infinite ease-in-out;
	animation: sk-scaleout 1.0s infinite ease-in-out;
	margin: auto;
}

.reg_txt {
    color: #3e3e3e;
    margin-bottom: 1.5em;
}

.ajustes_container {
    width: fit-content;
}

.ajustes_item {
    width: 300px;
    margin: .5em 0em 1em 0em;
    display: block;
}

.filter {
    cursor: pointer;
    margin: .3em;
    user-select: none;
}

.clear_tag_filter {
    color: #868584;
    margin: .6em;
    font-size: 1em;
    cursor: pointer;
    display: inline;
    opacity: 0;
    transition: .2s;
}

.popup_button_section {
    margin: 2em auto 0em;
}

.guest_area {
    margin-bottom: 1em;
}



/* LOADER */
.lds-heart {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
    transform: rotate(45deg);
    transform-origin: 40px 40px;
}
.lds-heart div {
    top: 32px;
    left: 32px;
    position: absolute;
    width: 32px;
    height: 32px;
    background: #fff;
    animation: lds-heart 1.2s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
}
.lds-heart div:after,
.lds-heart div:before {
    content: " ";
    position: absolute;
    display: block;
    width: 32px;
    height: 32px;
    background: #fff;
}
.lds-heart div:before {
    left: -24px;
    border-radius: 50% 0 0 50%;
}
.lds-heart div:after {
    top: -24px;
    border-radius: 50% 50% 0 0;
}

/* Heart loader */
@keyframes lds-heart {
    0% {
        transform: scale(0.95);
    }
    5% {
        transform: scale(1.1);
    }
    39% {
        transform: scale(0.85);
    }
    45% {
        transform: scale(1);
    }
    60% {
        transform: scale(0.95);
    }
    100% {
        transform: scale(0.9);
    }
}

.settings_tab {
    background: #fff;
    transition: .4s ease-in-out;
    position: fixed;
    height: 100vh;
    z-index: 30;
    padding: 5em 2em;
    top: 0em;
    border-right: solid 1px #dbdbdba3;
}

.settings_tab_closed {
    left: -25em;
}

.settings_tab_open {
    left: 0em;
}

.import_tab {
    background: #fff;
    transition: .4s ease-in-out;
    position: fixed;
    height: 100vh;
    z-index: 30;
    padding: 5em 2em;
    top: 0em;
    border-right: solid 1px #dbdbdba3;
}

.import_tab_closed {
    left: -25em;
}

.import_tab_open {
    left: 0em;
}

.save_new_guest_error_text {
    color: red;
    font-size: 13px;
}


/* Ocultar el botón de selección de archivos nativo */
.button input[type="file"] {
    display: none;
}

.custom-file-upload-label {
    height: 20px;
    font-size: 13px;
    color: #8e8e8e;
    user-select: none;
    margin: 6px auto;
}

.subtitle {
    color: black;
    font-size: 18px;
    text-align: left;
    margin: auto;
}

.duplicate_alert {
    background: #fff4e4;
    color: #2f2e26;
    display: none;
    align-items: center;
    border-radius: .5em;
    font-size: 18px;
    padding: 20px;
    margin: 15px auto;
    border: 1px solid #e5e7eb;
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    cursor: default;
}

.row_alert_circle {
    display: inline-block;
    background: #ffffa8;
    width: 18px;
    height: 18px;
    border-radius: 100px;
    margin-right: 8px;
}

.row_alert_text {
    text-align: center;
    font-weight: bold;
}

.message_alert_circle {
    display: inline-block;
    color: #2f2e26;
    border: 1px solid #2f2e26;
    width: 18px;
    height: 18px;
    border-radius: 100px;
    margin-right: 10px;
}

.message_alert_text {
    text-align: center;
    font-weight: bold;
    font-size: 14px;
}



/* Spinner */
@keyframes spinner-anim {
    from {transform:rotate(0deg);}
    to {transform:rotate(360deg);}
}

/* Button Loader */
@-webkit-keyframes sk-scaleout {
	0% { -webkit-transform: scale(0) }
	100% {
		-webkit-transform: scale(1.0);
		opacity: 0;
	}
}

@keyframes sk-scaleout {
	0% { 
		-webkit-transform: scale(0);
		transform: scale(0);
	} 100% {
		-webkit-transform: scale(1.0);
		transform: scale(1.0);
		opacity: 0;
	}
}



/* Mobile */
@media only screen and (max-width: 450px) {
    body {
        margin: 0px;
        padding: 0px;
    }
    .metric_box {
        width: 100%;
        margin: 8px 3px;
    }
    .settings_tab_open {
        right: 0em;
    }

    .search {
        width: 100%;
    }

    .message_alert_circle {
        width: 53px;
    }

    .duplicate_alert {
        font-size: 16px;
    }

    td.msg_col {
        font-size: 8px; /* Adjust as needed */
    }
}