/* ========================================================================== */
/* Fonts */

@font-face
{
    font-family: Montserrat-Regular;
    src: url('/content/fonts/Montserrat/Montserrat-Regular.ttf');
    font-display: block;
}

@font-face
{
    font-family: Montserrat-Medium;
    src: url('/content/fonts/Montserrat/Montserrat-Medium.ttf');
    font-display: block;
}

@font-face
{
    font-family: Montserrat-Bold;
    src: url('/content/fonts/Montserrat/Montserrat-Bold.ttf');
    font-display: block;
}

/* ========================================================================== */
/* Variables */

:root
{
    --white:                #FFFFFF;
    --black:                #000000;
    
    --paper-white:          #FDFDFD;
    --fill-gray:            #F0F0F0;
    --button-hover-gray:    #EEEEEE;
    --image-container-gray: #E0E0E0;
    --table-border-gray:    #DDDDDD;
    --border-gray:          #CCCCCC;
    --disabled-gray:        #A0A0A0;
    --confidential-gray:    #707070;
    --text-gray:            #505050;
    --text-black:           #202020;
    
    --red:                  #F44336;
    --amber:                #FFC107;
    --yellow:               #FCDB00;
    --green:                #47A64A;
    --blue:                 #227EBF;
    --light-blue:           #4E8DBA;
    --dark-blue:            #1E6EA6;
    --tag-blue:             #DAE6F0;
    --button-hover-blue:    #BEDBF0;
    --purple:               #64458C;
    
    --border-radius:        5px;
    --box-shadow:           0 2px 6px 0 rgba(0, 0, 0, 0.2);
}

/* ========================================================================== */
/* General */

*
{
    box-sizing: border-box;
}

a
{
    text-decoration: none;
    cursor: pointer;
    color: inherit;
}

b, strong
{
    font-family: Montserrat-Medium, sans-serif;
    font-weight: normal;
}

body
{
    display: flex;
    flex-flow: column;
    height: 100%;
    margin: 0;
    overflow-y: scroll;
    overflow-x: auto;
    scroll-behavior: smooth;
    font-family: Montserrat-Regular, sans-serif;
    font-size: 17px;
    text-size-adjust: none;
    -webkit-text-size-adjust: none;
    color: var(--black);
    background-color: var(--paper-white);
}

button, .button
{
    display: flex;
    position: relative;
    height: 2.2em;
    width: min-content;
    margin: 0;
    padding: 0em .75em;
    justify-content: center;
    align-items: center;
    text-align: center;
    font: inherit;
    line-height: 1;
    white-space: nowrap;
    color: inherit;
    background-color: var(--paper-white);
    border: 1px solid var(--border-gray);
    border-radius: var(--border-radius);
    border-color: var(--disabled-gray);
    outline: none;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}

button:hover, .button:hover
{
    background-color: var(--button-hover-gray);
}

button.add, .button.add,
button.navigation, .button.navigation
{
    border-color: var(--blue);
}

button.add:hover, .button.add:hover,
button.navigation:hover, .button.navigation:hover
{
    background-color: var(--button-hover-gray);
}

button.block, .button.block
{
    width: 100%;
}

button.delete, .button.delete
{
    border-color: var(--red);
}

button.delete:hover, .button.delete:hover
{
    color: var(--paper-white);
    background-color: var(--red);
}

button.inquire, .button.inquire
{
    border-width: 2px;
    border-radius: var(--border-radius);
    background-color: var(--tag-blue);
    border-color: var(--blue);
}

button.inquire:hover, .button.inquire:hover
{
    background-color: var(--button-hover-blue);
}

button.log-out, .button.log-out
{
    color: var(--black);
    border-color: var(--amber);
}

button.log-out:hover, .button.log-out:hover
{
    background-color: var(--amber);
}

button.mini, .button.mini
{
    font-size: 12px;
}

button.navigation:disabled, .button.navigation:disabled
{
    color: var(--disabled-gray);
    background-color: var(--paper-white);
    border-color: var(--disabled-gray);
    cursor: default;
}

button.notice, .button.notice
{
    color: var(--paper-white);
    background-color: var(--disabled-gray);
    border-color: var(--disabled-gray);
}

button.notice:hover, .button.notice:hover
{
    background-color: var(--confidential-gray);
}

button.remove, .button.remove
{
    background-color: var(--paper-white);
    border-color: var(--red);
}

button.remove:hover, .button.remove:hover
{
    background-color: var(--button-hover-gray);
}

button.save, .button.save
{
    color: var(--paper-white);
    background-color: var(--green);
    border-color: var(--green);
}

button.save:hover, .button.save:hover
{
    opacity: 90%;
}

button.set, .button.set
{
    border-color: var(--green);
}

button.set:hover, .button.set:hover
{
    background-color: var(--button-hover-gray);
}

div.note
{
    font-size: 13px;
}

footer
{
    display: flex;
    flex-flow: row;
    justify-content: space-evenly;
    align-items: flex-start;
    gap: 35px;
    padding: 35px;
    font-size: 15px;
    background-color: var(--fill-gray);
}

footer .item
{
    display: flex;
    flex-flow: column;
    align-items: center;
    gap: 10px;
}

footer .item .info
{
    display: flex;
    flex-flow: column;
    gap: 3px;
    text-align: center;
}

h1, h2, h3
{
    font-family: Montserrat-Medium, sans-serif;
    font-weight: normal;
    margin-bottom: .8em;
}

h1:first-child, h2:first-child, h3:first-child
{
    margin-top: 0;
}

h1
{
    font-size: 20px;
}

h2
{
    font-size: 18px;
}

h3
{
    font-size: inherit;
}

header
{
    display: block;
    position: relative;
    z-index: 1;
    background-color: var(--paper-white);
    box-shadow: var(--box-shadow);
}

hr
{
    margin: 0 auto;
}

html
{
    height: 100%;
}

img
{
    user-select: none;
    -webkit-user-select: none;
}

img.page
{
    display: block;
    height: auto;
    border-radius: var(--border-radius);
}

img.page.float-left
{
    float: left;
    max-width: 50%;
    margin-right: 25px;
    margin-bottom: 25px;
}

img.page.center
{
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

img.page.float-right
{
    float: right;
    max-width: 50%;
    margin-left: 25px;
    margin-bottom: 25px;
}

input
{
    font: inherit;
}

input[type='checkbox'], input[type='radio']
{
    margin: 2px;
    accent-color: var(--dark-blue);
}

input.short-field  {width: 100%; max-width: 50px;}
input.medium-field {width: 100%; max-width: 200px;}
input.long-field   {width: 100%; max-width: 500px;}
input.full-field   {width: 100%;}

label
{
    user-select: none;
    -webkit-user-select: none;
}

main
{
    display: block;
    width: 100%;
    max-width: 1400px;
    padding: 25px;
    margin-left: auto;
    margin-right: auto;
}

main.offline
{
    display: flex;
    flex-flow: column;
    align-items: center;
    width: 100%;
    max-width: 100%;
    height: 100%;
    background-color: var(--fill-gray);
}

main.offline .container
{
    display: flex;
    flex-flow: column;
    align-items: center;
    gap: 15px;
    text-align: center;
    max-width: 600px;
    margin-top: 20vh;
}

main.offline .text
{
    text-align: center;
}

nav.top
{
    display: flex;
    flex-flow: row;
    justify-content: space-between;
    align-items: center;
    max-width: 1400px;
    padding-left: 25px;
    padding-right: 25px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 15px;
    margin-bottom: 15px;
    font-family: Montserrat-Medium, sans-serif;
    line-height: 1;
    user-select: none;
    -webkit-user-select: none;
    overflow: hidden;
}

nav.top .logo-title
{
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
    font-family: Montserrat-Bold, sans-serif;
}

nav.top .menu
{
    display: grid;
    grid-auto-flow: column;
    gap: 25px;
    justify-content: space-between;
    align-items: center;
}

nav.top .logo-title .menu-item,
nav.top .menu .menu-item,
nav.top .menu .dropdown .dropdown-title
{
    padding: 8px 0;
    border: none;
    align-items: center;
    background-color: inherit;
    cursor: pointer;
}

nav.top .menu .dropdown .dropdown-menu
{
    display: none;
    position: absolute;
    width: 150px;
    background-color: var(--paper-white);
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
}

nav.top .menu .dropdown .dropdown-menu .dropdown-menu-item
{
    display: block;
    padding: 8px 14px;
    border-bottom: 1px solid var(--border-gray);
    font-size: 14px;
}

nav.top .menu .dropdown .dropdown-menu .dropdown-menu-item:last-child
{
    border: none;
}

nav.top .menu .menu-item:hover,
nav.top .menu .menu-item.active,
nav.top .menu .dropdown .dropdown-title:hover,
nav.top .menu .dropdown .dropdown-title.active,
nav.top .menu .dropdown .dropdown-menu .dropdown-menu-item:hover,
nav.top .menu .dropdown .dropdown-menu .dropdown-menu-item.active,
nav.overlay .menu .menu-item:hover,
nav.overlay .menu .menu-item.active,
nav.overlay .menu .submenu .submenu-item:hover,
nav.overlay .menu .submenu .submenu-item.active
{
    color: var(--dark-blue);
}

nav.top .menu .dropdown .dropdown-menu .dropdown-menu-item:hover
{
    background-color: var(--fill-gray);
}

nav.top .overlay-menu-icon
{
    display: none;
    stroke: var(--black);
    stroke-width: 4px;
    fill: none;
    cursor: pointer;
}

nav.overlay
{
    display: none;
    position: relative;
    width: 100%;
    height: 100%;
    padding: 25px;
    background-color: var(--paper-white);
    user-select: none;
    -webkit-user-select: none;
    z-index: 0;
}

nav.overlay .menu
{
    font-family: Montserrat-Medium, sans-serif;
    white-space: nowrap;
}

nav.overlay .menu .menu-item
{
    display: flex;
    justify-content: flex-start;
    width: 100%;
    height: min-content;
    margin-top: 5px;
    margin-bottom: 0;
    padding-top: 5px;
    padding-bottom: 5px;
    font-size: 19px;
}

nav.overlay .menu .menu-item:first-child
{
    margin-top: 0;
}

nav.overlay .menu .submenu
{
    margin-left: 20px;
}

nav.overlay .menu .submenu .submenu-item
{
    display: flex;
    justify-content: flex-start;
    width: 100%;
    height: min-content;
    margin-top: 5px;
    margin-bottom: 0;
    padding-top: 3px;
    padding-bottom: 3px;
    font-size: 17px;
}

nav.overlay .menu button
{
    padding: 0;
    border: 0;
    line-height: normal;
    background-color: inherit;
}

nav.page
{
    display: flex;
    flex-flow: row;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

nav.page .info
{
    text-align: center;
}

nav.pagination
{
    display: flex;
    flex-flow: row;
    justify-content: center;
    align-items: center;
    gap: 25px;
    margin-top: 25px;
    margin-bottom: 25px;
}

nav.page select, nav.pagination select
{
    height: 2.2em;
    padding: 0em .75em;
    font: inherit;
    white-space: nowrap;
    color: inherit;
    background-color: var(--paper-white);
    border: 1px solid var(--blue);
    border-radius: var(--border-radius);
    outline: none;
}

nav.pagination button, nav.pagination .button
{
    width: 120px;
}

nav.pagination.main button, nav.pagination.main .button,
nav.pagination.main select
{
    border-width: 2px;
    border-radius: var(--border-radius);
}

p, ul
{
    margin-top: 1em;
    margin-bottom: 1em;
}

p:first-child
{
    margin-top: 0;
}

p:last-child
{
    margin-bottom: 0;
}

progress
{
    display: block;
    width: 100%;
    margin-bottom: 15px;
    accent-color: var(--dark-blue);
}

section.page-action
{
    display: flex;
    flex-flow: row;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 18px;
    margin-top: 25px;
    background-color: var(--fill-gray);
    border: 1px solid var(--table-border-gray);
    border-radius: var(--border-radius);
}

section + section
{
    margin-top: 25px;
}

section:has(table)
{
    overflow-x: auto;
}

select
{
    width: min-content;
    font: inherit;
    user-select: none;
    -webkit-user-select: none;
}

table
{
    width: 100%;
    background-color: var(--fill-gray);
    border-spacing: 0;
    border-collapse: separate;
    border-radius: var(--border-radius);
}

table th
{
    color: var(--paper-white);
    background-color: var(--blue);
}

table tr:first-child th:first-child
{
    border-left: 1px solid var(--blue);
    border-top-left-radius: var(--border-radius);
}

table tr:first-child th:last-child
{
    border-right: 1px solid var(--blue);
    border-top-right-radius: var(--border-radius);
}

table td
{
    border-bottom: 1px solid var(--table-border-gray);
}

table td:first-child
{
    border-left: 1px solid var(--table-border-gray);
}

table td:last-child
{
    border-right: 1px solid var(--table-border-gray);
}

table tr:last-child td:first-child
{
    border-bottom-left-radius: var(--border-radius);
}

table tr:last-child td:last-child
{
    border-bottom-right-radius: var(--border-radius);
}

table th, table td
{
    padding: 8px;
    text-align: left;
    vertical-align: top;
}

table th:first-child, table td:first-child
{
    padding-left: 12px;
}

table th:last-child, table td:last-child
{
    padding-right: 12px;
}

table th.min
{
    width: 1px;
}

table th.user
{
    width: 12%;
}

table th.standard
{
    width: 15%;
}

table th.open-house
{
    width: 130px;
}

table td.address
{
    max-width: 500px;
}

table th.price, table td.price
{
    width: 13%;
    white-space: nowrap;
}

table th.item, table td.item
{
    width: 25%;
}

table th.analytics-main, table td.analytics-main
{
    width: auto;
}

table th.analytics-views, table td.analytics-views
{
    width: 150px;
    text-align: right;
}

table th.analytics-date-last-visited, table td.analytics-date-last-visited
{
    width: 300px;
    text-align: right;
}

table td.analytics-date-last-visited
{
    white-space: nowrap;
}

table td.section
{
     background-color: var(--image-container-gray);
}

table.admin-picture-cards td.main
{
    padding: 15px;
}

table.striped tbody tr:nth-child(odd)
{
    background-color: var(--paper-white);
}

table.striped tbody tr:nth-child(even)
{
    background-color: var(--fill-gray);
}

table .action
{
    display: flex;
    flex-flow: row;
    justify-content: center;
    gap: 10px;
    padding: 10px;
}

table .logo-container
{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 161px;
    height: 161px;
    border: 1px solid var(--border-gray);
    overflow: hidden;
}

table .image-container
{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 350px;
    background-color: var(--image-container-gray);
    border: 1px solid var(--border-gray);
    overflow: hidden;
}

table .logo-container img,
table .image-container img
{
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

textarea
{
    width: 100%;
    font: inherit;
}

ul.note
{
    padding-left: 25px;
    font-size: 13px;
}

ul.note li
{
    margin-bottom: 8px;
}

.align-center
{
    text-align: center;
}

.align-left
{
    text-align: left;
}

.align-right
{
    text-align: right;
}

.box-shadow
{
    box-shadow: var(--box-shadow);
}

.confidential
{
    color: var(--confidential-gray);
}

.contact-info
{
    display: flex;
    flex-flow: column;
    align-items: center;
    width: max-content;
    margin-top: 25px;
    margin-left: auto;
    margin-right: auto;
    padding: 25px;
    border-top: 15px solid var(--blue);
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
}

.display
{
    display: block;
    width: 100%;
    margin: 75px auto;
    font-size: 28px;
    text-align: center;
}

.display.coming-soon
{
    margin: 35px auto 75px;
}

.display.no-pictures
{
    font-size: 20px;
}

.gray
{
    color: var(--text-gray);
}

.hidden
{
    display: none;
}

.inline
{
    display: inline;
}

.nowrap
{
    white-space: nowrap;
}

.hcontainer
{
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 10px;
}

.hcontainer.no-row-wrap
{
    flex-flow: row;
}

.vcontainer
{
    display: flex;
    flex-flow: column;
    gap: 8px;
}

.status-tag
{
    display: inline-block;
    padding: .20em .45em;
    text-align: center;
    border-radius: var(--border-radius);
}

.status-tag.active, .status-tag.logged-in
{
    color: var(--paper-white);
    background-color: var(--green);
}

.status-tag.pending
{
    background-color: var(--yellow);
}

.status-tag.sold
{
    color: var(--paper-white);
    background-color: var(--disabled-gray);
}

.status-tag.inactive, .status-tag.disabled, .status-tag.logged-out
{
    color: var(--paper-white);
    background-color: var(--disabled-gray);
}

.wrap
{
    word-break: break-all;
}

/* ========================================================================== */
/* Listing Card Grid */

.listing-card-grid
{
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    justify-content: center;
    align-content: center;
}

.listing-card-grid .listing-card
{
    display: block;
    font-size: 16px;
    color: black;
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
}

.listing-card-grid .listing-card .image-container
{
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    aspect-ratio: 1.5;
    width: 100%;
    background-color: var(--fill-gray);
    overflow: hidden;
}

.listing-card-grid .listing-card .image-container img
{
    display: block;
    position: absolute;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

.listing-card-grid .listing-card .image-container img[src='']
{
    display: none;
}

.listing-card-grid .listing-card .image-container .open-house-tag
{
    display: block;
    position: absolute;
    left: 15px;
    top: 15px;
    padding: 5px 9px;
    border-radius: var(--border-radius);
    font-family: Montserrat-Medium, sans-serif;
    font-size: 14px;
    background-color: var(--fill-gray);
    opacity: 75%;
}

.listing-card-grid .listing-card .status-container
{
    padding: 10px;
    text-align: center;
    background-color: var(--fill-gray);
}

.listing-card-grid .listing-card .info-container
{
    display: flex;
    flex-flow: column;
    gap: 12px;
    padding: 15px;
}

.listing-card-grid .listing-card .info-container .address-container
{
    display: flex;
    min-height: 40px;
    flex-flow: column;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}

.listing-card-grid .listing-card .info-container .address-container .address
{
    font-family: Montserrat-Medium, sans-serif;
    font-size: 18px;
}

.listing-card-grid .listing-card .info-container .address-container .city-state-country
{
    font-family: Montserrat-Regular, sans-serif;
}

.listing-card-grid .listing-card .info-container .price-container
{
    display: flex;
    min-height: 40px;
    flex-flow: column;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}

.listing-card-grid .listing-card .info-container .price-container .price
{
}

/* ========================================================================== */
/* Property Details */

.property-details
{
}

.property-details .gallery
{
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 1.5;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
    cursor: default;
    user-select: none;
    -webkit-user-select: none;
}

.property-details .gallery .slide
{
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    background-color: var(--fill-gray);
}

.property-details .gallery .slide img
{
    display: none;
    position: absolute;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

.property-details .gallery .slide img[src='']
{
    display: none;
}

.property-details .gallery .slide .slide-number
{
    position: absolute;
    right: 10px;
    bottom: 10px;
    padding: 8px 10px;
    border-radius: var(--border-radius);
    font-size: 13px;
    color: white;
    background-color: var(--text-black);
    opacity: 50%;
}

.property-details .gallery .scroll-button
{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border-radius: var(--border-radius);
    background-color: var(--text-black);
    opacity: 50%;
    cursor: pointer;
    touch-action: manipulation;
}

.property-details .gallery .scroll-button#next
{
    right: 10px;
}

.property-details .gallery .scroll-button#prev
{
    left: 10px;
}

.property-details .gallery .scroll-button .arrow
{
    padding: 12px;
    font-size: 40px;
    line-height: 1;
    color: white;
    opacity: 75%;
}

.property-details .gallery .scroll-button .arrow:hover
{
    opacity: 100%;
}

.property-details .info-container
{
    display: grid;
    grid-template-columns: 1fr max-content;
    justify-content: space-between;
    gap: 15px 25px;
    margin-top: 15px;
}

.property-details .info-container .left-container
{
    overflow: hidden;
    overflow-wrap: break-word;
}

.property-details .info-container .left-container .address
{
    font-family: Montserrat-Medium, sans-serif;
    font-size: 20px;
}

.property-details .info-container .left-container .city-state-country
{
    font-size: 18px;
}

.property-details .info-container .left-container .status
{
    margin-top: 10px;
}

.property-details .info-container .left-container .represent
{
    font-size: 15px;
}

.property-details .info-container .left-container .price
{
    font-size: 18px;
    white-space: nowrap;
}

.property-details .info-container .right-container
{
}

.property-details .info-container .right-container .open-house-tag
{
    display: inline-block;
    padding: 6px 12px;
    white-space: nowrap;
    color: var(--paper-white);
    background-color: var(--light-blue);
    border-radius: var(--border-radius);
    cursor: default;
}

.property-details .info-tag-container
{
    display: flex;
    flex-flow: row wrap;
    gap: 15px;
    margin-top: 15px;
}

.property-details .info-tag-container .info-tag
{
    display: inline-block;
    width: min-content;
    padding: 6px 12px;
    white-space: nowrap;
    background-color: var(--tag-blue);
    border-radius: var(--border-radius);
    cursor: default;
}

.property-details .info-tag-container .info-tag .value
{
    display: inline;
    font-family: Montserrat-Medium, sans-serif;
    font-size: 16px;
}

.property-details .info-tag-container .info-tag .units
{
    display: inline;
    font-size: 13px;
}

.property-details .property-description
{
    margin-top: 15px;
}

.property-details .external-content-container
{
    position: relative;
    margin-top: 25px;
    margin-bottom: 25px;
    margin-left: 75px;
    margin-right: 75px;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
    user-select: none;
    -webkit-user-select: none;
}

.property-details .external-content-container .aspect-ratio-container
{
    position: relative;
    width: 100%;
    aspect-ratio: 1.5;
    border-radius: var(--border-radius);
}

.property-details .external-content-container .aspect-ratio-container iframe
{
    position: absolute;
    width: 100%;
    height: 100%;
    border: none;
    border-radius: var(--border-radius);
}

.property-details .listing-agent-container
{
    margin-top: 25px;
    font-size: 14px;
    color: var(--text-gray);
}

.property-details .inquire-form
{
    display: flex;
    margin-top: 25px;
    justify-content: center;
    align-items: center;
}

/* ========================================================================== */
/* Admin Picture Card Grid */

.admin-picture-card-grid
{
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 25px;
    user-select: none;
    -webkit-user-select: none;
}

.admin-picture-card-grid:has(.no-pictures)
{
    grid-template-columns: 1fr;
}

.admin-picture-card-grid .picture-card
{
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    aspect-ratio: 1.5;
    width: 100%;
    background-color: var(--fill-gray);
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
}

.admin-picture-card-grid .picture-card img
{
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

.admin-picture-card-grid .picture-card img[src='']
{
    display: none;
}

.admin-picture-card-grid .picture-card .picture-number
{
    display: flex;
    position: absolute;
    justify-content: center;
    align-items: center;
    top: 0px;
    left: 0px;
    width: 38px;
    height: 38px;
    padding: 0;
    font-size: 15px;
    white-space: nowrap;
    color: white;
    background-color: var(--text-black);
    opacity: 50%;
}

.admin-picture-card-grid .picture-card .move-button
{
    display: flex;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    padding: 0;
    border: none;
    border-radius: 0;
    justify-content: center;
    align-items: center;
    line-height: 0;
    background-color: var(--text-black);
    opacity: 50%;
    cursor: pointer;
    touch-action: manipulation;
}

.admin-picture-card-grid .picture-card .move-button:hover
{
    background-color: var(--blue);
}

.admin-picture-card-grid .picture-card .move-button .graphic
{
    stroke: var(--paper-white);
    stroke-width: 4px;
    fill: none;
}

.admin-picture-card-grid .picture-card .move-button.left
{
    left: 0px;
}

.admin-picture-card-grid .picture-card .move-button.right
{
    right: 0px;
}

.admin-picture-card-grid .picture-card .delete-button
{
    display: flex;
    position: absolute;
    justify-content: center;
    align-items: center;
    top: 0px;
    right: 0px;
    width: 38px;
    height: 38px;
    padding: 0;
    border: none;
    border-radius: 0;
    line-height: 0;
    background-color: var(--text-black);
    opacity: 50%;
    cursor: pointer;
    touch-action: manipulation;
}

.admin-picture-card-grid .picture-card .delete-button:hover
{
    background-color: var(--red);
}

.admin-picture-card-grid .picture-card .delete-button .graphic
{
    stroke: var(--paper-white);
    stroke-width: 4px;
    fill: none;
}

.admin-picture-card-grid .picture-card .upload-progress
{
    display: flex;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    padding: 10px;
    justify-content: center;
    align-items: center;
    font-size: 30px;
    line-height: 1;
    white-space: nowrap;
    color: white;
    background-color: var(--text-black);
    opacity: 70%;
}

.admin-picture-card-grid-header
{
    display: flex;
    flex-flow: row;
    justify-items: center;
    gap: 15px;
    margin-top: 25px;
    margin-bottom: 25px;
    padding: 5px 8px;
    background-color: var(--fill-gray);
    border: 1px solid var(--border-gray);
}

.admin-picture-card-grid-footer
{
    display: flex;
    flex-flow: column;
    align-items: center;
    margin-top: 25px;
    padding: 15px;
    background-color: var(--fill-gray);
    border: 1px solid var(--border-gray);
}

/* ========================================================================== */
/* Analytics */

.chart-card
{
    padding: 15px;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
}

.chart-card canvas
{
    max-width: 100%;
    max-height: 450px;
}

.chart-card h2
{
    margin-top: 0;
}

.chart-card div
{
    width: 100%;
    aspect-ratio: 1.85;
}

.chart-card-group
{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 25px;
}

/* ========================================================================== */
/* Login Card */

.login-card
{
    display: block;
    width: 300px;
    margin-top: 75px;
    margin-left: auto;
    margin-right: auto;
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--box-shadow);
}

.login-card .header
{
    font-family: Montserrat-Medium, sans-serif;
    font-size: 19px;
    padding: 10px 20px;
    color: var(--paper-white);
    background-color: var(--blue);
}

.login-card .body
{
    padding: 20px;
}

.login-card .body .message
{
    display: none;
    margin-bottom: 20px;
    font-family: Montserrat-Medium, sans-serif;
    color: var(--red);
}

.login-card .body input
{
    display: block;
    width: 100%;
    margin-bottom: 20px;
    padding: 8px;
    border: 1px solid var(--border-gray);
    border-radius: var(--border-radius);
    overflow: hidden;
}

.login-card .body button
{
    width: 100%;
    color: var(--paper-white);
    background-color: var(--blue);
    border-color: var(--blue);
    border-radius: var(--border-radius);
}

.login-card .body button:hover
{
    opacity: 90%;
}

.login-card .body button:active
{
    opacity: 100%;
}

/* ========================================================================== */
/* Solo Card */

.solo-card
{
    width: 325px;
    margin-top: 15vh;
    margin-left: auto;
    margin-right: auto;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: hidden;
}

.solo-card .header
{
    padding: 10px 15px;
    font-family: Montserrat-Medium, sans-serif;
    font-size: 19px;
    color: var(--paper-white);
    background-color: var(--blue);
}

.solo-card .body
{
    padding: 15px;
}

/* ========================================================================== */
/* Help Dialog */

dialog
{
    width: 400px;
    padding: 0px;
    border: none;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    overflow: auto;
}

dialog div.header
{
    display: flex;
    flex-flow: row;
    align-items: center;
    justify-content: space-between;
    padding: 8px 8px 8px 15px;
    background-color: var(--blue);
}

dialog div.header div.title
{
    font-family: Montserrat-Medium, sans-serif;
    font-size: 19px;
    color: var(--paper-white);
}

dialog div.header button
{
    width: min-content;
    height: min-content;
    padding: 4px;
}

dialog div.header button svg
{
    stroke: var(--text-gray);
    stroke-width: 3px;
    fill: none;
}

dialog div.body
{
    padding: 15px;
}

/* ========================================================================== */
/* Notice Dialog */

dialog.notice
{
    position: relative;
    width: 100%;
    margin: 0px 0px 20px 0px;
    color: var(--paper-white);
    background-color: var(--blue);
    box-shadow: none;
}

dialog.notice div.header
{
    background-color: inherit;
}

dialog.notice div.body
{
    padding-top: 0px;
    padding-bottom: 8px;
}

/* ========================================================================== */
/* Error Dialog */

dialog.error
{
    position: relative;
    width: 100%;
    margin: 0px 0px 20px 0px;
    color: var(--paper-white);
    background-color: var(--red);
    box-shadow: none;
}

dialog.error div.header
{
    background-color: inherit;
}

dialog.error div.body
{
    padding-top: 0px;
    padding-bottom: 8px;
}

/* ========================================================================== */
/* Media Rules */

@media (max-width: 1200px)
{
    .admin-picture-card-grid
    {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (max-width: 1000px)
{
    .admin-picture-card-grid
    {
        grid-template-columns: 1fr 1fr;
    }
    
    .chart-card-group
    {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 800px)
{
    nav.top .menu
    {
        display: none;
    }
    
    nav.top .overlay-menu-icon
    {
        display: block;
    }
    
    .listing-card-grid,
    .admin-picture-card-grid
    {
        grid-template-columns: 1fr;
    }
    
    .property-details .info-container
    {
        grid-template-columns: 1fr;
    }
    
    .property-details .external-content-container
    {
        margin-left: 0;
        margin-right: 0;
    }
    
    .chart-card-group
    {
        grid-template-columns: 1fr;
    }
    
    .contact-info
    {
        clear: both;
    }
    
    footer
    {
        flex-flow: column;
        align-items: center;
    }
}
