:root {
    --color-name: #e1e1e1;
    --color-nickname: #ff5c91;
    --color-currency: #ff5c91;
    --color-emphasize: #ff5c91;
}

@container (max-width: 500.98px) {
    .customer-listitem {
        width: calc((100% - (0.75rem * 1)) / 2);
    }
}
@container (min-width: 501px) and (max-width: 700.98px) {
    .customer-listitem {
        width: calc((100% - (0.75rem * 2)) / 3);
    }
}
@container (min-width: 701px) and (max-width: 900.98px) {
    .customer-listitem {
        width: calc((100% - (0.75rem * 3)) / 4);
    }
}
@container (min-width: 901px) and (max-width: 1100.98px) {
    .customer-listitem {
        width: calc((100% - (0.75rem * 4)) / 5);
    }
}
@container (min-width: 1101px) {
    .customer-listitem {
        width: calc((100% - (0.75rem * 5)) / 6);
    }
}

.customer-name     { color: var(--color-name); }
.customer-nickname { color: var(--color-nickname); }
.currency { color: var(--color-currency); }

html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 3px 5px rgba(85, 105, 128, 0.25)
}

html {
    position: relative;
    height: 100%;
}

body {
    min-height: 100%;
    font-family: 'Microsoft JhengHei', sans-serif;
}

.main-layout-container {
    padding-bottom: 2rem;
}

.lh-100 {
    line-height: 100%;
}

.fs-7  { font-size: 0.7rem; }
.fs-75 { font-size: 0.75rem; }
.fs-8  { font-size: 0.8rem; }
.fs-85 { font-size: 0.85rem; }
.fs-9  { font-size: 0.9rem; }
.fs-95 { font-size: 0.95rem; }

.footer {
    z-index: 1000;
    background-color: #222222;
    position: fixed !important;
    left: 0;
    bottom: 0;
    width: 100%;
}
.footer > .container {
    line-height: 2rem;
    font-size: 0.75rem;
}

hr {
    margin: 0.25rem 0 0.25rem 0;
    padding: 0;
}

.btn-thin {
    padding: 0.5rem 0.75rem 0.5rem 0.75rem !important;
    line-height: 100%;
}

.page-header {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: flex-end;
}
.page-title {
    flex: 0 0 auto;
    line-height: 100%;
    font-size: 3rem;
    font-weight: bold;
}
.page-actionbar {
    flex: 1 0 auto;
    display: flex;
    flex-flow: row-reverse nowrap;
    justify-content: flex-start;
    align-items: flex-end;
}

.section-container {
    margin-bottom: 2rem;
}
.section-header {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: flex-end;
}
.section-title {
    flex: 0 0 auto;
    line-height: 100%;
    font-size: 1.5rem;
}
.section-actionbar {
    flex: 1 0 auto;
    display: flex;
    flex-flow: row-reverse nowrap;
    justify-content: flex-start;
    align-items: flex-end;
}

.field-validation-error {
    color: red;
    font-size: smaller;
}
.field-validation-message {
    display: block;
    width: 100%;
    text-align: end;
    color: red;
    font-size: smaller;
}

.form-list-group {
    position: relative;
    width: 100%;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: flex-start;
}
.form-list-group > div.form-list-group-title {
    flex: 0 0 auto;
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
}
.form-list-group > div.form-list-group-title > span.form-list-group-title:first-child {
    flex: 0 0 auto;
    align-self: stretch;
    display: inline-block;
    background-color: #3b3b3b;
    border: solid 1px #515151;
    border-bottom: none;
    border-radius: 0;
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}
.form-list-group > div.form-list-group-title > div.action-bar {
    flex: 1 0 auto;
    align-self: stretch;
    display: flex;
    flex-flow: row-reverse nowrap;
    justify-content: flex-start;
    align-items: flex-end;
}
.form-list-group > div.form-list-group-title > div.action-bar > button {
    font-size: 0.8rem !important;
    padding: 0.1rem 0.2rem 0.1rem 0.2rem !important;
    margin-bottom: 0.2rem !important;
}
.form-list-group > .form-list {
    flex: 0 0 auto;
    width: 100%;
    position: relative;
    background-color: transparent;
    border: solid 1px #515151;
    border-radius: 0 0.25rem 0.25rem 0.25rem;
}
.form-list-group > div.form-list-row {
    flex: 0 0 auto;
    width: 100%;
    position: relative;
    background-color: transparent;
    border: solid 1px #515151;
    border-bottom: none;
    border-radius: 0;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: stretch;
}
.form-list-group > .form-list-group-title + div.form-list-row {
    border-top-right-radius: 0.25rem;
}
.form-list-group > div.form-list-row:last-child {
    border-bottom: solid 1px #515151;
    border-bottom-left-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
}

.last-input-group-child {
    border-top-right-radius: 0.25rem !important;
    border-bottom-right-radius: 0.25rem !important;
}

.my-shadow {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.75);
}
.my-rounded {
    border-radius: 0.5rem;
}

.clickable {
    cursor: pointer;
    transition: background-color;
    transition-duration: 0.2s;
    transition-timing-function: ease-in;
}
.clickable:hover {
    background-color: #031633;
    transition: background-color;
    transition-duration: 0.2s;
    transition-timing-function: ease-in;
}

.customer-list-container {
    display: inline-flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 0.75rem;
    container-type: inline-size;
}
.customer-listitem {
    flex: 0 0 auto;
    box-sizing: border-box;
    background-color: #222222;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;
    cursor: pointer;
}
.customer-listitem-name-container {
    flex: 0 0 auto;
}
.customer-listitem-name {
    font-size: 1.2rem;
    font-weight: bold;
    color: #ffffff;
}
.customer-listitem-nickname {
    font-size: 0.9rem;
    color: #c0c0c0;
}
.customer-listitem-searchmatch {
    flex: 0 0 auto;
    font-size: 0.8rem;
    line-height: 0.8rem;
}

.customer-search-bar {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
}
.customer-search-group {
    flex: 0 0 auto;
    width: auto !important;
}

.delete-icon-container {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translate(0, -50%);
    width: 16px;
    height: 16px;
}
.delete-icon {
    display: block;
    width: 16px;
    height: 16px;
}
.delete-icon:hover .delete-icon-stroke {
    stroke: #ff5c91;
    stroke-width: 2px;
    transition: stroke, stroke-width;
    transition-duration: 0.2s;
    transition-timing-function: ease-in;
}
.delete-icon-stroke {
    fill: none;
    stroke: #808080;
    stroke-width: 2px;
    transition: stroke, stroke-width;
    transition-duration: 0.2s;
    transition-timing-function: ease-in;
}
