a {
    text-decoration: none;
    background-color: transparent;
    -webkit-text-decoration-skip: objects;
}

small, .small {
    font-size: 80%;
    font-weight: normal;
}
.small .form-control {
    font-size: inherit;
    font-weight: inherit;
}


/* hide spinner buttons in number input fields */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.btn-link {
    text-decoration: none;
}

/* 2 per row */
.col-lms-4 {
    flex: 0 0 50%;
    max-width: 50%;
}
/* 3 per row */
@media (min-width: 768px) {
    .col-lms-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%;
    }
}
/* 4 per row */
@media (min-width: 992px) {
    .col-lms-4 {
        flex: 0 0 25%;
        max-width: 25%;
    }
}
/* 5 per row */
@media (min-width: 1200px) {
    .col-lms-4 {
        flex: 0 0 20%;
        max-width: 20%;
    }
}
/* 6 per row */
@media (min-width: 1400px) {
    .col-lms-4 {
        flex: 0 0 16.66%;
        max-width: 16.66%;
    }
}

.w-0 {
    width: 0;
}
.form-control-15 {
    max-width: 15%;
    text-align: center;
}
.form-control-20 {
    max-width: 20%;
    text-align: center;
}

.table-no-padding td, .table-no-padding th {
    padding: 2px !important; /* Remove padding */
}

input[type=number] {
    -moz-appearance: textfield;
}

/* alert stuff */

.alert {
    position: relative;
    overflow: hidden;
    margin-bottom: 10px;
    background-position: 15px center;
    background-repeat: no-repeat;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    cursor: pointer;
    box-shadow: 0 2px 4px -1px rgba(0,0,0,0.06), 0 4px 5px 0 rgba(0,0,0,0.06), 0 1px 10px 0 rgba(0,0,0,0.08);
    transition: height 0.5s linear, color 0.3s ease-in-out, background-color 0.3s ease-in-out, border-color 0.3s ease-in-out;
}
.alert>div {
    padding: 15px 15px 15px 60px;
}

.alert-info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjEuNv1OCegAAAF/SURBVFhH7Zc9TgMxEIVd8eeFAKfgHgSJAilS1iu62BERHTVSekqOQkWFOARFGipKkBDcgL+ZZXACnthrK/KCxJM+JesZ6z15vU5WoAplRrLUd/D5ngPyGtXm62ow/NmQC/QWkOaWK+YAvUVR6leumAXwxvvPFzPxRwPA0kmlz4q+3kHq74m3MjGAGdeP0IxwjO0NkBSg09Ob5GuFY1xviKQAoqqWyHeq/ZNlrjdE4iYcKLK1wjG+109SAKnMExwiu+QtZH/YhetnrjdE4gp8Ig8O7xGu1pT4AKW5gcfuchYYv3b6GhIXAI9ObgOCoH7l9DcgMoB5IT9HsBIX7JwA0SuwoY62yfOb8gQAYLc/QpBz8rXKFgBBM/K1+g+QMYCewNNwSr5WOFbX2DnziQuA54DWK+TpSqlVdp6HyADzz4EvQd+bM89D9ApsVccd8nKENXaeh+g9AD8+D2t7vQkH1rg5PqIDLJpfECDx3+xCwKeq9Vez1l9OUXDR0uu5EB+69lQIQdOK7gAAAABJRU5ErkJggg==)
}
.alert-info:hover {
    background-color: #bee5eb;
}

.alert-success {
    color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjEuNv1OCegAAAEYSURBVFhH7ZNBDoIwEEW5gloWblzYkqhX0bhCMPG0LkyMJ8CNbo03YKUdWlKorRTakhh5yd/ATP+fgQYDA30x2s1nKCEnqjtKyYY/7ofCPMW3MCUvJpxP9njLX/vl01yE8L4JvTkTfffkpe5pMmfCGS93CzospnC42pSJ/oyPcRoteYs7fsM8JiveIkBxtGbfDB/hIP7YGKvJ4U7S5lwU46xNCLvJ6V2sm5cyC2E1OQB3UdXE9D2EtTkQJuSqahRShzA2V629ChRAoeoAoXoIJ5NXaRPCuXmJaQgj86a16zALoVenyWW6hrCaXKZtCCeTy5iG8GJe0hSiMHe1dh26EF4nl5FD9GpeAiGo+QUl+Ox97QN/RBC8ASUXsHsAUixjAAAAAElFTkSuQmCC)
}
.alert-success:hover {
    background-color: #c3e6cb;
}

.alert-warning {
    color: #856404;
    background-color: #fff3cd;
    border-color: #ffeeba;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjEuNv1OCegAAAKxSURBVFhH1ZZNaBNBFMcHZ9K06sUP6EV60YsHQfADBKUgeBO82IOgqJlpoUIPUvDg12p2kxaKB0VBFHooiJ4EPQgiKop6liqCWCViDxUUoVRExOp/Ni/TZPN2E2224h9+kOz833uzbz4S8V8rrzvWW+hr++QdEcsDox4WjPplCbS6P7xfLKPh9BVoOVYp7tBylIbTVVFn1xW0+l43AaO++f3ZtWRLTyh0O1J4Aa1uki0doc272MJV+EbuJHtr5fUKFRj5iitaDfbHpPVSWOuE5EPRYrFoNUhhrVHxgFiFY/eZLcaAY/lpZFCsoPDFC2t/iSuUBJbiAoUvTvlDmQ1o6Y9IgRIKFGpRH2o8iGnJLYnE92oSh8gxGnbCJC5GfYi9S8N/J+z6PdGkYWIjL5PFCcUmOG/eyN1k+TOdHxJZFHrDJcWGvEE2J0zgFuvV8rXXJzrI1rx8rY5xCUO0ukM2J/gfsF6LVsNka04FLbrxlrNsMouWT8nqhG49Y71lvticZG0sJBtnkjgw/oKsTmj1S85bAeNXyJqsEZPZhJb95JI4cOTI7oRn06y3AnIGJrOR7PGy7WUTVGGXh+xOiUtGoAuPyc7LN0v2cYEctqUgvIRwL1zlPBzw91G5WnkDYimO0nsuiEXLd+AMfn7z+F6qG4+ndHSv6KKyCwpy8ixj5tFyyv5AUaid/Go8b3oSeNFTFFrW6IDowSb5ypk56hJA2AMe5+WAd84zYg2F2iOkrnPGBE5SqBMuotOML5Ygp66VAw+r7XgwHzUkYa9oT4uVYQLoHD6He4LxxoGXni/m1DZ76TzhDI3Abp7yjTqORCfw+S3naYx8ZC+Q5EsnTVDbXqGT7GAbQPefC7sOaONHzpAmOAkzqLs13ETeQdFZ7FdbMLCjHeAEbLb/N8Li/1ZC/AauwejP3okLZgAAAABJRU5ErkJggg==)
}
.alert-error {
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjEuNv1OCegAAAKISURBVFhHxVfLahRBFO2l70dEJKliBqdKhSxc6KfERRDcZhed7mHQXfYBf0BBP0YkvrPQnxCiIKMICTieU30rM+3c7umedMyBA8nUrXNu3aquR1IXwyu3zqe2t54a/xx8l1r/NTNun+Tf/C2z/hljGCvdjo6h6d0Iptb/gsG4DhnLPg/RV2SaI7X2NEa3HUapmNRiXqFtaolsPcioP6uiC5Ba1BT5agw67m5m3Z4mdDS6vWHH3REbHcwSJfumC7RBJFFWiY3l5TOZ8V/0ji0SHvQS2wkwT0/VDkKs7D8YwUhrK9KN8litLSe9xDZHtnL9ZmrdgRYciNU8MP7e1tXVcxB/rcYEup3Hvd5FxlZ9PcELnmKPBIx7oQUGcqMxfk1Ck03vL9BoNtbtsE3CWNG1qiToGQIfdbuXEPxbDUIp+xhNCJzCbBJF84iQRMl00JPeycC4B1pATjcq21YliTcQ+qCZE4Nrt88i5oeu7cf0RpbupdYYyTkvSyK1q0uk/FtAODuMf6VpRtI7QYa7WuM0q5LQEMwrF2uk28UC9N/1xiIpuLmkl3oajKlnDsIbFVAaymj8exwsaskJtmFUyhdSzmYJYNE96XQui98MmADm/aPeV2ejKaizDsJn3WwKTngRHutnOCeJ8Bn2F9yIuBawp3/Clvq2bCNiX2ro2n5M77lbMUZxX/QOUXcr5jZOjUnchIdbMdHkMNrAaVc0j1zwMCLqHsc8anXzyPw4Zmmr9GaOYwIZV15IQEyH+6n8XqDENLuQECd+JSNYFpTxGG7EkRWX0ghenVHG1pOgZn/etTyCTyrMU6sPk8bPtK1u9xRWfytPM2qJbHNINf7/4/Rf5Ht728/zJPkLx4mAV3wKMMYAAAAASUVORK5CYII=)
}
.alert-error:hover {
    background-color: #f5c6cb;
}

#alert-container {
    position: fixed;
    top: 5px;
    left: 5px;
    right: 5px;
    z-index: 1080;
    transition: transform 0.5s ease-in-out;
}

@media (min-width: 576px) {
    #alert-container {
        left: auto;
        top: 15px;
        right: 15px;
        width: 500px;
    }
}

.alert-box {
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.6s linear, height 0.6s linear, slide-from-top 1000ms cubic-bezier(0.2, 0.7, 0.5, 1);
}
.alert-box.show {
    opacity: 1;
}

@keyframes slide-from-top {
    0% {
        transform: translateY(-30%);
        opacity: 0; }
    70% {
        opacity: 1; }
    100% {
        transform: translateY(0); }
}

/* footer stuff */

:root {
    --navbar-height: 56px;
}

.footer-space {
    display: block;
    position: relative;
    min-height: calc(100vh - var(--navbar-height));
    overflow: hidden;
    padding-bottom: 300px;
}
footer
{
    z-index: 10;
    display: flex;
    position: absolute;
    bottom: 0;
    width: 100%;
    align-items: center;
    text-align: center;
    height: 300px;
    color: #777777;
    background-color: #222;
    font-size: 14px;
    font-weight: 200;
    line-height: 1em;
}

.no-gutters {
    margin-right: 0;
    margin-left: 0;
}
.no-gutters > .col,
.no-gutters > [class*="col-"] {
    padding-right: 0;
    padding-left: 0;
}

/* navbar stuff */
body:has(.navbar) {
    padding-top: var(--navbar-height);
}
.navbar-nav .dropdown-menu {
    position: absolute;
}

.styled-dropdown-menu {
    min-width: 320px;
}
.styled-dropdown-menu .dropdown-header {
    padding: 1rem 1.25rem;
}
.styled-dropdown-menu .dropdown-divider {
    margin: 0;
}
.styled-dropdown-menu .dropdown-item {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}

.nav-right-link {
    display: flex;
    align-items: center;
    /*gap: 16px;*/
    color: var(--bs-nav-link-color);
    text-decoration: none;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}
.nav-right-link:hover {
    color: var(--bs-nav-link-hover-color);
}

.offcanvas.showing .avatar-menu, .offcanvas.show .avatar-menu {
    display: none;
}
.offcanvas.showing .avatar-menu a, .offcanvas.show .avatar-menu a {
    transition: none;
}

/* hide site title when the mobile sidebar toggler is present */
.sidebar-toggler-btn + .navbar-brand {
    display: none;
}

.nav-grid-btn {
    color: #fff;
    padding: 6px 8px;
    border: none;
    background: transparent;
}
.nav-grid-btn:hover,
.nav-grid-btn:focus {
    opacity: 0.8;
}

.nav-menu-dialog {
    max-width: calc(100% - 1rem);
    margin-left: 0.5rem;
    margin-right: 0.5rem;
}

.nav-menu-dialog .modal-content {
    border-radius: 1rem;
    overflow: hidden;
}

.nav-menu-dialog .modal-body {
    max-height: 70vh;
    overflow-y: auto;
}

.nav-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.nav-menu-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    font-size: 1.05rem;
    color: #fff;
    text-decoration: none;
    border-radius: 0.5rem;
}
.nav-menu-item:hover,
.nav-menu-item:focus {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}
.nav-menu-item.active {
    font-weight: 600;
}

/* sidebar stuff */
.sidebar {
    min-width: 300px;
    max-width: 300px;
    background: #32373d;
    color: #fff;
    transition: all .3s;
    position: relative;
}
@media (max-width: 767.98px) {
    .sidebar {
        position: fixed;
    }
}

.offcanvas.showing.sidebar, .offcanvas.show.sidebar {
    position: absolute;
}

.sidebar h1 {
    margin-bottom: 20px;
    font-weight: 700;
    font-size: 20px
}

.sidebar h1 .logo {
    color: #fff;
    display: block;
    padding: 10px 30px;
    background: #2f89fc
}

.sidebar>ul {
    padding: 0;
    list-style: none;
}

.sidebar ul li {
    font-size: 16px;
}

.sidebar ul li a {
    transition: .3s all ease;
    padding: 15px 30px;
    display: block;
    color: rgba(255,255,255,.6);
    border-bottom: 1px solid rgba(255,255,255,.05);
    text-decoration: none;
    cursor: pointer;
}

.sidebar ul li a:hover {
    color: #fff;
    background: #2f89fc;
    border-bottom: 1px solid #2f89fc;
}

.sidebar ul li.active>a {
    background: 0 0;
    color: #fff;
}

.sidebar ul li.active>a:hover {
    background: #2f89fc;
    border-bottom: 1px solid #2f89fc
}


.text-bg-lessdark {
    color: #fff !important;
    background-color: RGBA(66, 68, 82, var(--bs-bg-opacity, 1)) !important;
}
.text-stress
{
    font-weight: 900;
    color: #c9302c !important;
}

.min-vh-80 {
    min-height: 80vh !important;
}

/* Reviews CSS */
.media-object {
    border-radius: 50%;
    object-fit: cover;
    width: 42px;
    height: 42px;
    flex-shrink: 0;
}

@media (min-width: 576px) {
    .media-object {
        width: 60px;
        height: 60px;
    }
}

.media-object-small {
    border-radius: 50%;
    object-fit: cover;
    width: 30px;
    height: 30px;
    flex-shrink: 0;
}

@media (min-width: 576px) {
    .media-object-small {
        width: 40px;
        height: 40px;
    }
}

.comment-form>.card:hover {
    border: 1px solid rgba(210, 210, 210, 0.32);
    background-color: rgba(210, 210, 210, 0.16);
    box-sizing: border-box;
}

@media (min-width: 768px) {
    .card.p-md-4 {
        padding: 1.5rem !important;
    }
}

/* Messages */

/* Ensure the card is a positioning context */
.card {
    position: relative;
}

/* Floating ellipsis dropdown button */
.card-action-dropdown {
    position: absolute;
    top: 4px;
    right: 2px;
    z-index: auto;
    pointer-events: auto; /* ensures hover works */
}

/* Square, transparent button */
.btn-icon-square {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    border-radius: 0.375rem;
    cursor: pointer;
    opacity: 0; /* hidden by default */
    transition: background-color 0.18s ease, opacity 0.18s ease, transform 0.18s ease;
}


/* Desktop: show on hover */
body:not(.touch-device) .card:hover>.card-action-dropdown>.btn-icon-square,
body:not(.touch-device) .card-action-dropdown:hover>.btn-icon-square {
    opacity: 1;
}

/* Mobile / touch devices: always visible */
body.touch-device .btn-icon-square {
    opacity: 1;
}

/* Subtle hover effect with lift on desktop */
body:not(.touch-device) .btn-icon-square:hover {
    background-color: var(--bs-gray-200);
    transform: translateY(-1px);
}

/* Optional: smaller icon adjustments */
.btn-icon-square i {
    font-size: 0.9rem;
}

/* Smaller ellipsis button for comment cards */
.comment-form .card-action-dropdown .btn-icon-square {
    width: 24px;
    height: 24px;
}

.comment-form .card-action-dropdown .btn-icon-square i {
    font-size: 0.7rem; /* smaller icon inside button */
}

@media (max-width: 768px) {
    /* Smaller ellipsis button for comment cards */
    .card-action-dropdown .btn-icon-square {
        width: 24px;
        height: 24px;
    }

    .card-action-dropdown .btn-icon-square i {
        font-size: 0.7rem; /* smaller icon inside button */
    }
}

.message-pending {
    border-left: 5px solid #e09a33 !important;
    background-color: #fff7e8 !important;
}

.message-hidden {
    border-left: 5px solid #c82333 !important;
    background-color: #fff1f1 !important;
}

/* Applied to the content wrapper (a sibling of .card-action-dropdown), not
   the .card itself: opacity on the .card would create a new stacking
   context and trap the dropdown's z-index below the next card in the list. */
.message-hidden > .d-flex {
    opacity: 0.82;
}

.comment-status {
    border-top: 1px solid rgba(0,0,0,.06);
    padding-top: .75rem;
}

.comment-pending {
    border-left: 5px solid #f0ad4e!important;
    background-color: #fffdf8!important;
}
.comment-hidden {
    border-left: 5px solid #dc3545!important;
    background-color: #fff8f8!important;
}

/* See .message-hidden > .d-flex above: keep opacity off the .card so it
   doesn't trap the dropdown's z-index behind the next comment card. */
.comment-hidden > .d-flex {
    opacity: 0.7;
}

/* List */

.main-box.no-header {
    margin-top: 20px;
}
.main-box {
    background: #FFFFFF;
    box-shadow: 1px 1px 2px 0 #CCCCCC;
    margin-bottom: 16px;
    border-radius: 3px;
}
.table a.table-link.danger {
    color: #e74c3c;
}

/* fa-stack action buttons (edit/delete/etc.): darken slightly on hover,
   regardless of which color utility (text-info, text-danger, ...) is used.
   Applied via filter rather than color so it works uniformly across colors
   and doesn't fight the !important color set by those utility classes. */
.btn:hover .fa-stack {
    filter: brightness(0.85);
}

.label {
    border-radius: 3px;
    font-size: 0.875em;
    font-weight: 600;
}
.user-list tbody td div {
    display: block;
}
.user-list tbody td .user-subhead {
    font-size: 0.650em;
    font-style: italic;
    margin-left: 60px;
    margin-bottom: 0;
}
.user-list tbody td .user-link {
    font-weight: 500;
    font-size: 0.875em;
    padding-top: 3px;
    margin-left: 60px;
    margin-bottom: 0;
}
.user-list button {
    padding: 0 0 0 0;
    color: #3498db;
    outline: none!important;
}
.user-list tbody td>img {
    position: relative;
    float: left;
    margin-right: 15px;
}

.table thead tr th {
    text-transform: uppercase;
    font-size: 0.875em;
    border-bottom: 2px solid #e7ebee;
}
.table tbody tr td:first-child {
    font-size: 1em;
    font-weight: 300;
    white-space: nowrap;
}
.table tbody tr td {
    font-size: 0.875em;
    vertical-align: middle;
    border-top: 1px solid #e7ebee;
    padding: 2px 1px;
}
a:hover{
    text-decoration:none;
}

/* attributes */
.attribute-link {
    color: #000;
    background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1));
    display: block;
    padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
    font-size: var(--bs-nav-link-font-size);
    font-weight: var(--bs-nav-link-font-weight);
    color: var(--bs-nav-link-color);
    text-decoration: none;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.attribute-link:hover, .attribute-link:focus {
    background-color: RGBA(198, 199, 190, var(--bs-bg-opacity, 1));
    box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.15);
}

/* Gallery */

.gallery-item {
    display: inline-block;
    position: relative;
}

.gal-img-thumbnail {
    position: relative;
    padding: 0.25rem;
    background-color: #fff;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.375rem;
    max-width: 100%;
    height: auto;
}
.gal-img-thumbnail a img {
    width: 100%;
    height: 150px;
}

.gal-btn-container {
    position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    opacity: 0.3;
    gap: 10px;
    cursor: pointer;
    transition: opacity 0.3s;
}

.gal-img-thumbnail:hover .gal-btn-container {
    opacity: 1;
}
.gallery-item:hover .gal-btn-container {
    opacity: 1;
}


.gal-img-add {
    display: flex;                /* Enable Flexbox */
    justify-content: center;      /* Center horizontally */
    align-items: center;          /* Center vertically */
    height: 150px;
}
.gal-img-add>.btn>i {
    font-size: 64px;
}

.img-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
}

.img-grid img {
    height: 300px;
    object-fit: cover;
    flex-shrink: 0;
    display: block;
}

/* Card profile */
.card, .card-fixed {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: border-box;
    box-sizing: border-box;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    transition: all 0.15s ease-in-out;
}
.card-unimportant {
    display: none;
    position: relative;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: border-box;
    box-sizing: border-box;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    transition: all 0.15s ease-in-out;
}
.card-clickable {
    cursor: pointer;
    transition: all 0.15s ease-in-out;
}
.card-unavailable {
    background-color: #aaa;
    border: 2px solid #ff6b62;
}
.card-clickable:hover {
    margin-top: -5px;
    outline: 0;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); }
.card:link,.card:visited,.card:hover,.card:active {
    color: inherit;
    text-decoration: none;
}

.card.updated {
    animation: cardFlash 3s ease-out;
}

@keyframes cardFlash {
    0% {
        box-shadow: inset 0 0 0 9999px rgba(59, 130, 246, 0.18);
    }

    40% {
        box-shadow: inset 0 0 0 9999px rgba(59, 130, 246, 0.08);
    }

    100% {
        box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0);
    }
}

.removing {
    opacity: 0;
    transform: translateY(-6px) scale(0.98);
    transition: all 240ms ease;
}


.card-body {
    flex: 1 1 auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}
.card-body-warning {
    border: 2px solid red;
}

.profile-header-column {
    font-weight: bold;
}
.table-card-body {
    width: 80%;
    margin: auto;
    text-align: left;
    margin-bottom: 20px;
}
.table-card-body>tbody>tr {
    height: auto;
}
.table-card-contactinfo {
    font-size: 0.9em;
    width: 98%!important;
}
.table-card-contactinfo .profile-header-column {
    padding-left: 1.25rem;
}

.table-card-services {
    font-size: 0.8em;
    width: 98%!important;
}
.table-card-services .profile-header-column {
    padding-left: 1.25rem;
}
.service-template-description {
    font-size: 0.8em;
}

.table-card-collapse {
    max-height: 36px;
    overflow: hidden;
    transition: all 0.5s ease-in-out;
}
.table-card-collapse:hover {
    max-height: 200px;
    overflow: hidden;
}
.table-card-appointment {
    font-size: 0.9em;
    line-height: 2em;
    width: 100%;
    overflow: hidden;
    background-color: #eeeeee;
    margin: auto;
    text-align: left;
}
.table-card-appointment>tbody>tr>td {
    padding: 0 5px 0 5px;
}
.table-card-appointment .profile-header-column {
    background-color: #ffffff;
}

.card-body .active {
    font-weight: bolder;
}

.card-body .card-unavailable {
    color: #fff;
    background-color: #d9534f;
    border-color: #d9534f;
}

.card-title, .card-title2 {
    margin-bottom: 0.75rem; }

.card-subtitle {
    margin-top: -0.375rem;
    margin-bottom: 0; }

.card-text:last-child {
    margin-bottom: 0; }

.card-link:hover {
    text-decoration: none; }

.card-link + .card-link {
    margin-left: 1.25rem; }

.card > .list-group:first-child .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem; }

.card > .list-group:last-child .list-group-item:last-child {
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem; }

.card-style-1>.card>.card-header, .card-style-2>.card>.card-header2,.card-style-1>.card>.card-body>.card-title, .card-style-2>.card>.card-body>.card-title2,.card-style-1>.card>.card-body>.card-profile-img
{
    display: block;
}
.card-style-1>.card>.card-body>.card-profile-img
{
    display: inline;
}
.card-style-1>.card>.card-header2, .card-style-2>.card>.card-header,.card-style-1>.card>.card-body>.card-title2, .card-style-2>.card>.card-body>.card-title,.card-style-2>.card>.card-body>.card-profile-img, .card-style-2 .table-card-body, .card-style-2 h6
{
    display: none;
}

.card-header
{
    padding: 0.75rem 1.25rem;
    margin-bottom: 0;
    background-color: rgba(0, 0, 0, 0.03);
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}
.card-header:first-child {
    border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }

.card-footer {
    padding: 0.75rem 1.25rem;
    background-color: rgba(0, 0, 0, 0.03);
    border-top: 1px solid rgba(0, 0, 0, 0.125); }
.card-footer:last-child {
    border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }

.card-header-tabs {
    margin-right: -0.625rem;
    margin-bottom: -0.75rem;
    margin-left: -0.625rem;
    border-bottom: 0; }

.card-header-pills {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }

.card-img-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 1.25rem; }

.card-img {
    width: 100%;
    border-radius: calc(0.25rem - 1px); }

.card-img-top {
    width: 100%;
    border-top-left-radius: calc(0.25rem - 1px);
    border-top-right-radius: calc(0.25rem - 1px); }

.card-img-bottom {
    width: 100%;
    border-bottom-right-radius: calc(0.25rem - 1px);
    border-bottom-left-radius: calc(0.25rem - 1px);
}

.card-profile .card-title, .card-profile .card-title2 {
    margin-bottom: 5px; }

.card-profile .card-header {
    height: 150px;
    background-size: cover; }

.card-profile .card-header2 {
    height: auto;
}
.card-profile .card-header2 img {
    width: 100%;
    height: auto;
}

.card-profile .card-contactinfo {
    margin: auto;
    width: 80%;
    text-align: left;
}

.card-profile-img {
    max-width: 200px;
    margin-top: -120px;
    margin-bottom: 5px;
    border: 3px solid #fff;
    border-radius: 100%;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
    object-fit: cover;
}

.card-menu {
    list-style: none;
    padding: 0; }

.card-menu-item {
    display: inline-block;
    padding: 0 10px;
    border-right: 1px solid #d4dbe0; }

.card-menu-item:last-child {
    border-right: 0; }

/* profile  properties */
.profile-img-right
{
    width: 25%;
    min-width: 115px;
    margin-left: 1rem;
    margin-bottom: 1rem;
    border: 1px solid black;
}

/* girl list */

.profiles-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 0;
}

@media (min-width: 992px) {
    .profiles-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.profile-card {
    background: #fff;
    border-radius: 22px;
    padding: 18px;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow:
            0 8px 22px rgba(0,0,0,0.08),
            0 2px 6px rgba(0,0,0,0.04);
    transition: transform .25s ease, box-shadow .25s ease;
}

.profile-card:hover {
    transform: translateY(-2px);
    box-shadow:
            0 14px 28px rgba(0,0,0,0.10),
            0 4px 8px rgba(0,0,0,0.06);
}

.image-group {
    display: flex;
    gap: .5rem;
    align-items: center;
    flex-wrap: nowrap;
    justify-content: center;
}

.image-group img {
    flex: 0 0 auto;
    max-width: 100%;
    object-fit: cover;
    display: block;
}

.main-image {
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: 16px;
    background: #f5f5f5;
    box-shadow:
            0 6px 18px rgba(0,0,0,0.12),
            0 1px 3px rgba(0,0,0,0.06);
    overflow: hidden;
    position: relative;
}

@media (max-width: 575px) {
    .image-group {
        justify-content: center;
        gap: .75rem;
        flex-wrap: wrap;
    }
    .main-image {
        width: 100%;
        height: 280px;
        border-radius: 18px;
    }
}

@media (min-width: 576px) {
    .image-group img {
        height: 200px;
        width: 200px;
    }
}

.main-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 55%, rgba(0,0,0,0.08));
    border-radius: inherit;
    pointer-events: none;
}

.profile-card hr {
    border: 0;
    border-top: 1px solid rgba(0,0,0,0.15);
}

.profile-card table,
.profile-card table td,
.profile-card table th {
    border: none !important;
}

/* girl list filter */

.filter-dropdown {
    display: flex;
    gap: 0.5rem;
}

.filter-dropdown > .position-relative {
    display: inline-block;
}

@media (max-width: 575px) {
    .filter-dropdown > .position-relative {
        position: static !important;
    }

    .filter-menu {
        position: absolute;
        left: 10px !important;
        right: 10px !important;
        width: auto !important;
        max-width: none !important;
    }
}

.filter-menu {
    position: absolute;
    top: 100%;
    left: 0;

    width: min(calc(100vw - 50px), 500px);
    /*max-width: 100vw;*/

    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 0.375rem;
    box-shadow:
            0 24px 48px rgba(0,0,0,0.22),
            0 12px 24px rgba(0,0,0,0.14),
            0 4px 8px rgba(0,0,0,0.08);
    padding: 0.5rem;
    display: none;
    z-index: 1000;
    margin-top: 0.25rem;
}

.accordion-item {
    margin-bottom: 0.5rem;
}

.accordion-item:last-child {
    margin-bottom: 0;
}

.accordion-header {
    font-weight: 600;
    cursor: pointer;
    padding: 0.5rem 0.75rem;
    background-color: #f8f9fa;
    border-radius: 0.25rem;
    margin-bottom: 0.25rem;
    transition: background-color 0.2s;
    user-select: none;
}

.accordion-header:hover {
    background-color: #e9ecef;
}

.accordion-header.active {
    background-color: #e2e6ea;
}

.filter-options {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.filter-options.show {
    max-height: 500px;
}

.filter-options-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.5rem 0.75rem;
}

.tag {
    background-color: #e9ecef;
    padding: 0.4rem 0.75rem;
    border-radius: 0.25rem;
    cursor: pointer;
    font-size: 0.875rem;
    transition: all 0.2s;
    user-select: none;
    border: 1px solid transparent;
}

.tag.selected {
    background-color: #0d6efd;
    color: #fff;
    border-color: #0a58ca;
}

.tag:hover {
    background-color: #dee2e6;
    transform: translateY(-1px);
}

.tag.selected:hover {
    background-color: #0b5ed7;
}

.girlTag {
    background: #e8e8e8!important;
    color: #555 !important;
    font-weight: 500;
    padding: 6px 10px;
    border-radius: 12px;

    cursor: pointer;
    transition: all 0.2s;
    user-select: none;
}

.girlTag.selected {
    background-color: #8c959d !important;
    color: #fff !important;
    border-color: #8c959d !important;
}

.girlTag:hover {
    background-color: #dee2e6 !important;
    transform: translateY(-1px);
}

.girlTag.selected:hover {
    background-color: #6c757d !important;
}

#TagBox {
    width: 100%;
    margin-top: 0.75rem;
}

#TagList {
    min-height: 48px;
    align-items: center;
}

#TagList .badge {
    font-size: 0.875rem;
    cursor: pointer;
    padding: 0.5rem 0.75rem;
    transition: all 0.2s;
}

#TagList .tagOr {
    background-color: #3a616b;
}
#TagList .tagAnd {
    background-color: #6b693a;
}

#TagList .badge:hover {
    transform: scale(1.05);
    opacity: 0.9;
}

.filter-btn {
    font-weight: 500;
    transition: all 0.2s;
}

.filter-btn.active {
    background-color: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

#bTagClear:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.appointment-card {
    border: 1px solid rgba(0, 0, 0, 0.125);
    border-radius: 0.25rem;
    padding: 4px 8px;
    overflow: hidden;
}

.appointment-card-summary {
    cursor: pointer;
    gap: 8px;
}

.appointment-card-check {
    width: 20px;
}

.appointment-card-details {
    max-height: 0;
    overflow: hidden;
    font-size: 0.85em;
    color: #6c757d;
    transition: max-height 0.3s ease-in-out;
}

.appointment-card.expanded .appointment-card-details {
    max-height: 260px;
}

.table-card-appointment {
    width: 100%;
    line-height: 1.8em;
}

.table-card-appointment td {
    padding: 0 4px;
}

@media (max-width: 767.98px) {
    .filter-select {
        width: 100% !important;
    }
}
/* ============================================================
   NeoBASIC theme — dark navy palette from the original (2006)
   style.css: bg #051526, borders #10478F/#06306A, pale green
   text, lavender links.
   ============================================================ */

:root {
    --nb-bg: #051526;
    --nb-bg-raised: #0A2240;
    --nb-bg-input: #0C2448;
    --nb-border: #10478F;
    --nb-border-soft: #06306A;
    --nb-text: #DDEFDD;
    --nb-text-soft: #B4D1B4;
    --nb-text-lavender: #C4C4FF;
    --nb-link: #CCCCFF;
    --nb-link-hover: #EEEEFF;
    --nb-header: #7777CC;
}

body {
    background-color: var(--nb-bg);
    color: var(--nb-text);
}

a { color: var(--nb-link); text-decoration: none; }
a:hover, a:active { color: var(--nb-link-hover); }

/* Navbar + footer stay near-black navy */
.navbar.bg-dark, .nav-menu-modal .modal-content {
    background-color: #030E1C !important;
    border-bottom: 1px solid var(--nb-border-soft);
}
footer {
    color: var(--nb-text-soft);
    background-color: #030E1C;
    border-top: 1px solid var(--nb-border-soft);
}

/* Cards */
.card, .card.text-black {
    background-color: var(--nb-bg-raised);
    border: 1px solid var(--nb-border-soft);
    color: var(--nb-text) !important;
}
.card .card-header {
    background-color: rgba(16, 71, 143, 0.25);
    border-bottom: 1px solid var(--nb-border-soft);
    color: var(--nb-text-lavender);
}
.card .h1, .card .h2, .card .h4, .card .h5 {
    color: var(--nb-text-lavender);
}
.card .text-muted, .text-muted {
    color: #8888AA !important;
}

/* Tables */
.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--nb-text);
    --bs-table-border-color: var(--nb-border-soft);
    --bs-table-hover-color: var(--nb-text);
    --bs-table-hover-bg: rgba(16, 71, 143, 0.25);
    color: var(--nb-text);
}
.table thead th {
    color: var(--nb-header);
}

/* List groups */
.list-group-item, .list-group-item-action {
    background-color: transparent;
    border-color: var(--nb-border-soft);
    color: var(--nb-text);
}
.list-group-item-action:hover, .list-group-item-action:focus {
    background-color: rgba(16, 71, 143, 0.25);
    color: var(--nb-link-hover);
}

/* Forms */
.form-control, .form-select, .input-group-text, textarea.form-control {
    background-color: var(--nb-bg-input);
    border-color: var(--nb-border);
    color: var(--nb-text-lavender);
}
.form-control:focus, .form-select:focus {
    background-color: var(--nb-bg-input);
    border-color: var(--nb-link);
    color: var(--nb-text-lavender);
    box-shadow: 0 0 0 0.25rem rgba(204, 204, 255, 0.15);
}
.form-control::placeholder {
    color: #7788AA;
}
.form-control:disabled, .form-select:disabled {
    background-color: #071B36;
    color: #8888AA;
}
.form-select {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23CCCCFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.form-check-input {
    background-color: var(--nb-bg-input);
    border-color: var(--nb-border);
}
.form-check-input:checked {
    background-color: var(--nb-border);
    border-color: var(--nb-link);
}

/* Pagination */
.pagination {
    --bs-pagination-bg: var(--nb-bg-raised);
    --bs-pagination-border-color: var(--nb-border-soft);
    --bs-pagination-color: var(--nb-link);
    --bs-pagination-hover-bg: var(--nb-border-soft);
    --bs-pagination-hover-color: var(--nb-link-hover);
    --bs-pagination-hover-border-color: var(--nb-border);
    --bs-pagination-focus-bg: var(--nb-border-soft);
    --bs-pagination-focus-color: var(--nb-link-hover);
    --bs-pagination-active-bg: var(--nb-border);
    --bs-pagination-active-border-color: var(--nb-border);
    --bs-pagination-disabled-bg: var(--nb-bg-raised);
    --bs-pagination-disabled-color: #556688;
    --bs-pagination-disabled-border-color: var(--nb-border-soft);
}

/* Buttons */
.btn-outline-dark {
    --bs-btn-color: var(--nb-link);
    --bs-btn-border-color: var(--nb-border);
    --bs-btn-hover-bg: var(--nb-border);
    --bs-btn-hover-border-color: var(--nb-border);
    --bs-btn-hover-color: var(--nb-link-hover);
}

/* Modals */
.modal-content {
    background-color: var(--nb-bg-raised);
    border: 1px solid var(--nb-border-soft);
    color: var(--nb-text);
}

/* Legacy forum text styles, modernized */
.f_quoteheader {
    font-weight: bold;
    font-style: italic;
    font-size: 0.85em;
    color: #A8ACC0;
}
.f_quote {
    margin: 0 10px 8px;
    padding: 6px 10px;
    border: 1px dotted #A8ACA8;
    border-radius: 4px;
    background-color: rgba(6, 48, 106, 0.35);
}
.f_code {
    margin: 8px 0;
    padding: 8px 12px;
    border: 1px solid var(--nb-border-soft);
    border-radius: 4px;
    background-color: #030E1C;
    color: #C8FFC8;
    overflow-x: auto;
}
.f_sitequote {
    text-align: center;
    word-wrap: break-word;
}
.f_sitequote a {
    border-bottom: 1px dotted var(--nb-link);
}

/* Threaded replies indent */
.post-children {
    margin-left: 1.5rem;
    padding-left: 0.75rem;
    border-left: 1px solid var(--nb-border-soft);
}
@media (max-width: 576px) {
    .post-children {
        margin-left: 0.5rem;
        padding-left: 0.4rem;
    }
}

.post-author {
    min-width: 90px;
}
.post-signature {
    font-style: italic;
}
.post-message {
    overflow-wrap: anywhere;
}
.post-message img {
    max-width: 100%;
    height: auto;
}

.avatar-preview {
    max-width: 200px;
    max-height: 200px;
}
