
/* App overrides for internal pages to match expected design */
.page-main { padding: 40px 0 80px; }
.page-title { font-size: 28px; font-weight: 600; margin-bottom: 6px; }
.page-subtitle { color: #6b7280; margin-bottom: 24px; }

/* Internal header nav */
.app-nav { gap: 18px; }
.app-nav .nav-link { color: #374151; font-weight: 500; padding: 6px 10px; border-radius: 10px; }
.app-nav .nav-link.active, .app-nav .nav-link:hover { background: rgba(0,0,0,.06); }

/* Right-side vertical mode switch (Parking/Storage) for logged-in pages */
.mode-switcher {
  position: fixed;
  right: 18px;
  top: 160px;
  z-index: 999;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.mode-switcher a{
  width: 64px;
  height: 64px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
  transition: transform .15s ease, box-shadow .15s ease;
}
.mode-switcher a:hover{ transform: translateY(-2px); box-shadow: 0 14px 36px rgba(0,0,0,.12); }
.mode-switcher img{ width: 34px; height: 34px; object-fit: contain; }
@media (max-width: 992px){
  .mode-switcher{ display:none; }
}

/* Better form layout */
.form-card { background:#fff; border:1px solid rgba(0,0,0,.08); border-radius: 20px; padding: 22px; box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.form-section-title{ font-weight: 600; margin-bottom: 14px; }
.form-help { color:#6b7280; font-size: 13px; margin-top: 6px; }
input.form-control, select.form-select, textarea.form-control{
  border-radius: 8px;
  padding: 10px 14px;
  border-color: rgba(0,0,0,.15);
}
input.form-control:focus, select.form-select:focus, textarea.form-control:focus{
  box-shadow: 0 0 0 .2rem rgba(220,53,69,.12);
  border-color: rgba(220,53,69,.45);
}

/* Button alignment consistency */
.btn-primary{ border-radius: 999px; padding: 10px 18px; font-weight: 600; }
.btn-outline-secondary{ border-radius: 999px; padding: 10px 18px; font-weight: 600; }


/* === Added: responsive form grid (2-col desktop, stacked mobile) === */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;}
.form-grid .span-2{grid-column:1/-1;}
@media (max-width: 992px){.form-grid{grid-template-columns:1fr;}.form-grid .span-2{grid-column:auto;}}

/* === Added: booking cards (Parkhound-style) === */
.booking-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:14px;display:grid;
grid-template-columns:90px 1fr auto;gap:14px;align-items:center;box-shadow:0 10px 22px rgba(0,0,0,.04);margin-bottom:14px;}
.booking-card .thumb{width:90px;height:70px;border-radius:12px;object-fit:cover;background:#f3f3f3;}
.booking-title{font-weight:600;font-size:16px;margin:0;}
.booking-sub{font-size:13px;color:rgba(0,0,0,.65);margin-top:4px;}
.booking-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:rgba(0,0,0,.65);}
.badge-soft{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-weight:600;font-size:12px;border:1px solid transparent;}
.badge-soft.pending{background:rgba(255,193,7,.14);border-color:rgba(255,193,7,.28);color:#9a6a00;}
.badge-soft.active{background:rgba(13,110,253,.12);border-color:rgba(13,110,253,.22);color:#0b5ed7;}
.badge-soft.done{background:rgba(25,135,84,.12);border-color:rgba(25,135,84,.22);color:#146c43;}
.badge-soft.cancel{background:rgba(220,53,69,.10);border-color:rgba(220,53,69,.18);color:#b02a37;}
.booking-actions{display:flex;flex-direction:column;gap:10px;align-items:flex-end;}
@media (max-width: 992px){.booking-card{grid-template-columns:1fr;align-items:start;}.booking-actions{flex-direction:row;justify-content:flex-start;align-items:center;}}

/* === Added: responsive tables (global safety) === */
.table-responsive, .av-table-wrap{width:100%;overflow-x:auto;}
table{max-width:100%;}
.table th, .table td{vertical-align:middle;}

/* === Added: hide desktop offcanvas safety === */
@media (min-width: 992px){.offcanvas{display:none !important;}}

/* === Added: mode toggle active state === */
.mode-switcher a.active{outline:3px solid rgba(220,53,69,.18);border-color:rgba(220,53,69,.35);}


.booking-card {
    display: grid;
    grid-template-columns: 120px 1fr auto;
    gap: 16px;
    background: #fff;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

.booking-image img {
    width: 120px;
    height: 90px;
    object-fit: cover;
    border-radius: 8px;
}

.booking-meta {
    display: flex;
    gap: 16px;
    font-size: 14px;
    margin-top: 6px;
}

.status-pill {
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 13px;
}

.status-active {
    background: #e6f7ef;
    color: #137a4c;
}

.status-complete {
    background: #f1f1f1;
    color: #555;
}

/* Messages */
.messages-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 24px;
}

.messages-sidebar {
    background: #fff;
    border-radius: 12px;
    padding: 16px;
}

.conversation {
    display: flex;
    gap: 12px;
    padding: 12px;
    border-radius: 10px;
    cursor: pointer;
}

    .conversation.active {
        background: #f3f6ff;
    }

.messages-chat {
    background: #fff;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
}

.chat-body {
    flex: 1;
    padding: 16px;
}

.chat-msg {
    max-width: 70%;
    padding: 10px 14px;
    border-radius: 12px;
    margin-bottom: 10px;
}

    .chat-msg.received {
        background: #f1f1f1;
    }

    .chat-msg.sent {
        background: #e6f0ff;
        margin-left: auto;
    }

@media (max-width: 768px) {
    .messages-layout {
        grid-template-columns: 1fr;
    }
}


header ul.navbar-nav a[data-active] {
    color: #d83941;
    font-weight: 600;
}

header ul.navbar-nav a[data-active]::after {
    content: "";
    display: block;
    height: 3px;
    background: #d83941;
    margin-top: 6px;
    border-radius: 2px;
}

/* Receipts page only */
.receipts-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 28px 16px 44px;
}

.receipts-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin: 8px 0 16px;
}

.receipts-title {
    font-size: 26px;
    font-weight: 500;
    margin: 0;
}

.receipts-sub {
    margin: 6px 0 0;
    opacity: .75;
    font-size: 14px;
    line-height: 1.4;
}

.receipts-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

/* Hover lift utility */
.hover-lift{transition:transform .15s ease, box-shadow .15s ease;}
.hover-lift:hover{transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.08);}

.offer_icon img {
	height:15px !important;
}

img.h15{
	height:15px !important;
}



/* AV Shared Components --------------------------------------------------- */
:root{
  --av-border: rgba(0,0,0,.08);
  --av-muted:#6c757d;
  --av-accent:#dc3545;
  --av-shadow: 0 10px 30px rgba(0,0,0,.10);
}

/* Center main menu on desktop (Host pages) */
@media (min-width: 992px){
  .header-wrapper .navbar{ position: relative; }
  .header-wrapper .navbar-nav.av-center-nav{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    gap: 18px !important;
  }
}

/* Action buttons (Filter / Export / Print) */
.av-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.av-btn{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--av-border); background:#fff;
  padding:8px 12px; border-radius: 8px;
  font-weight:500; font-size: 13px;
}
.av-btn:hover, .av-btn.av-active{background: #e9f1f7; border-color: #ccdae5;}
.av-btn-primary{ border-color: rgba(220,53,69,.35); }
.av-btn.av-btn-sm{padding: 5px 10px;}


/* Tabs row for bookings */
.av-tabs-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.av-tabs{ border-bottom: 1px solid var(--av-border); margin: 0; }
.av-tabs .nav-link{
    border: 0;
    padding: 5px 14px;
    font-weight: 500;
    color: #111;
    border-radius: 30px;
    font-size: 14px;
    text-transform: uppercase;
}
.av-tabs .nav-link.active{background-color: #d83941; color: #fff;}

/* Booking table */
.av-table-shell{ border:1px solid var(--av-border); border-radius: 14px; overflow:hidden; background:#fff; }
.av-table-shell .table{ margin:0; }
.av-table-shell thead th{ background:#fafafa; border-bottom:1px solid var(--av-border); font-size:.85rem; white-space:nowrap; }
.av-pill{
  display:inline-flex; align-items:center;
  padding:.25rem .55rem; border-radius:999px;
  font-weight: 500; font-size:.78rem;
  border:1px solid var(--av-border); background:#fff; white-space:nowrap;
}
.av-pill-success{ background: rgba(25,135,84,.08); border-color: rgba(25,135,84,.25); color:#146c43; }
.av-pill-info{ background: #fbe9c8; border-color: #e5c790; color:#a5660b; }
.av-pill-danger{ background: rgba(220,53,69,.08); border-color: rgba(220,53,69,.25); color:#b02a37; }
.av-pill-muted{ background: rgba(0,0,0,.04); }

/* Right drawer (Filter) */
.av-drawer-backdrop{
  position:fixed; inset:0; background: rgba(0,0,0,.25);
  opacity:0; pointer-events:none; transition: opacity .15s ease;
  z-index: 1050;
}
.av-drawer{
  position:fixed; top:0; right:0; height:100vh; width: 360px; max-width: 92vw;
  background:#fff; box-shadow: var(--av-shadow);
  transform: translateX(105%); transition: transform .18s ease;
  z-index: 1060;
  display:flex; flex-direction:column;
}
.av-drawer.open{ transform: translateX(0); }
.av-drawer-backdrop.open{ opacity:1; pointer-events:auto; }
.av-drawer .av-drawer-head{ padding:16px 16px 10px; border-bottom:1px solid var(--av-border); display:flex; align-items:center; justify-content:space-between; }
.av-drawer .av-drawer-body{ padding:14px 16px; overflow:auto; }
.av-drawer .av-drawer-foot{ padding:14px 16px; border-top:1px solid var(--av-border); display:flex; justify-content:space-between; gap:10px; }

/* Empty states (two cards) */
.av-empty-grid{ display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:20px; justify-content:center; }
@media (max-width: 768px){ .av-empty-grid{ grid-template-columns: 1fr; } }
.av-empty-card{
  border:1px solid var(--av-border); border-radius: 18px; background:#fff;
  padding:26px 22px; text-align:center;
}
.av-empty-illu{ width: 84px; height: 84px; margin: 6px auto 14px; opacity:.9; }

/* Airbnb-like search dropdown (index) */
.av-search-panel{
  position:absolute; left:0; right:0; top: calc(100% + 10px);
  background:#fff; border:1px solid var(--av-border); border-radius: 18px;
  box-shadow: var(--av-shadow);
  padding: 10px; max-height: 360px; overflow:auto;
  display:none;
  z-index:1;
}
.av-search-panel.open{ display:block; }
.av-suggest{ display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius: 14px; cursor:pointer; }
.av-suggest:hover{ background:#f7f7f7; }
.av-suggest .icon{
  width:42px; height:42px; border-radius: 12px; display:flex; align-items:center; justify-content:center;
  background:#f3f4f6; border:1px solid var(--av-border);
}
.av-suggest .t1{ font-weight:600; }
.av-suggest .t2{ color:#6b7280; font-size: 13px; }


/* Table header tone to match theme */
.table thead th{font-weight:600;color:#374151;}



/* ===== Discounts (Airbnb-style) ===== */
.disc-enable {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 999px;
    background: #fff;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
}

    .disc-enable input {
        width: 16px;
        height: 16px;
    }

.disc-stack {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 12px;
}

.disc-card {
    display: grid;
    grid-template-columns: 86px 1fr 46px;
    gap: 14px;
    align-items: center;
    border: 1px solid rgba(0,0,0,.10);
    border-radius: 18px;
    background: #fff;
    padding: 16px;
}

.disc-pill {
    width: 86px; /* more space */
    height: 44px;
    border: 1px solid rgba(0,0,0,.18);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: #fff;
}

    .disc-pill input {
        width: 44px; /* enough for 0100 */
        border: 0;
        outline: 0;
        text-align: center; /* avoids clipping */
        font-weight: 700;
        background: transparent;
        padding: 0;
        appearance: textfield; /* hide ugly number UI in some browsers */
    }

        /* Hide spinners (Chrome/Edge/Safari) */
        .disc-pill input::-webkit-outer-spin-button,
        .disc-pill input::-webkit-inner-spin-button {
            -webkit-appearance: none;
            margin: 0;
        }

    .disc-pill span {
        font-weight: 700;
        opacity: .8;
    }

.disc-title {
    font-weight: 700;
}

.disc-sub {
    font-size: 13px;
    color: rgba(0,0,0,.60);
    margin-top: 2px;
}

.disc-inline {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}

.disc-mini {
    width: 56px;
    height: 36px;
    border: 1px solid rgba(0,0,0,.18);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .disc-mini input {
        width: 75px;
        border: 0;
        outline: 0;
        text-align: center;
        font-weight: 700;
        background: transparent;
    }

.disc-mini-text {
    font-size: 13px;
    color: rgba(0,0,0,.55);
}



.disc-check {
    position: relative;
}

    .disc-check input {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        opacity: 0;
        margin: 0;
        cursor: pointer;
    }

    .disc-check span {
        width: 22px;
        height: 22px;
        border-radius: 6px;
        border: 1px solid rgba(0,0,0,.18);
        background: #fff;
        display: block;
    }

    .disc-check input:checked + span {
        background: #111;
        border-color: #111;
        position: relative;
    }

        .disc-check input:checked + span::after {
            content: "";
            position: absolute;
            left: 7px;
            top: 3px;
            width: 6px;
            height: 12px;
            border: 2px solid #fff;
            border-top: 0;
            border-left: 0;
            transform: rotate(45deg);
        }

.disc-card.is-disabled {
    opacity: .55;
}

    .disc-card.is-disabled input {
        pointer-events: none;
    }

.disc-footnote {
    text-align: center;
    font-size: 12px;
    color: rgba(0,0,0,.55);
    margin-top: 2px;
}


.disc-bookings-input {
    width: 60px !important;
    height: 36px;
    border: 1px solid rgba(0,0,0,.18);
    border-radius: 12px;
    text-align: center;
    font-weight: 700;
    outline: 0;
}

    .disc-bookings-input::-webkit-outer-spin-button,
    .disc-bookings-input::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

.go-top-btn {
    position: fixed;
    bottom: 25px;
    right: 25px;
    width: 45px;
    height: 45px;
    border: none;
    border-radius: 50%;
    background: #d83941;
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    display: none; /* hidden by default */
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    transition: opacity 0.3s ease, transform 0.2s ease;
    z-index: 999;
}

    .go-top-btn:hover {
        transform: translateY(-3px);
        opacity: 0.9;
    }
/* ==============================
   Mobile fixes (Home / Index)
   ============================== */

/* Date picker popup on mobile was getting clipped.
   Make it fixed, constrain height and allow internal scroll. */
.av-datepop{
    position: fixed;
    left: 50%;
    top: 96px;
    transform: translateX(-50%);
    width: min(980px, calc(100vw - 24px));
    max-height: calc(100vh - 24px);
    display: flex;
    flex-direction: column;
}
.av-datepop-body{
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
@media (max-width: 800px){
    .av-datepop{ top: 12px; width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
    .av-footer{ position: sticky; bottom: 0; }
}

/* Listing cards on mobile: use grid so it doesn't look like 1 card per row with empty space */
.grid-section .grid-wrapper{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 18px;
}
.grid-section .grid-card{ width: auto; }
@media (max-width: 575px){
    .grid-section .grid-wrapper{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* ===== Listing details: Amenities grid ===== */
.amenities-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    margin-top: 10px;
}

@media (max-width: 768px) {
    .amenities-grid {
        grid-template-columns: 1fr;
    }
}

.amenity {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(0,0,0,.06);
    background: #fff;
}

.select2-selection__choice {
    background-color: #d83941 !important;
}

.select2-selection__choice__display, .select2-selection__choice__remove {
    color: #fff !important
}

.select2-results__option--highlighted {
    background-color: #f1676e !important;
}

.view-toggle {
    display: inline-flex;
    background: #f1f3f5;
    border-radius: 50px;
    padding: 4px;
    border: 1px solid #e0e0e0;
}

    .view-toggle .toggle-btn {
        border: none;
        background: transparent;
        padding: 8px 18px;
        border-radius: 50px;
        cursor: pointer;
        transition: all 0.25s ease;
        display: flex;
        align-items: center;
        justify-content: center;
    }

        .view-toggle .toggle-btn .material-icons {
            font-size: 22px;
            color: #6c757d;
            transition: color 0.25s ease;
        }

        /* Active side */
        .view-toggle .toggle-btn.active {
            background: #d83941; /* light blue like screenshot */
        }

            .view-toggle .toggle-btn.active .material-icons {
                color: #fff;
            }

        /* Hover */
        .view-toggle .toggle-btn:hover:not(.active) {
            background: #e9ecef;
        }

/* Monthly ongoing box inside date overlay */
.av-monthly-box {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 16px;
    background: #fff;
    padding: 14px 16px;
    margin-bottom: 14px;
}

.av-monthly-header {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 14px;
    margin-bottom: 8px;
}

.av-monthly-title {
    font-weight: 700;
}

.av-monthly-date {
    font-weight: 600;
}

.av-monthly-info {
    color: #6c757d;
    font-size: 14px;
    margin-bottom: 10px;
}

.av-monthly-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 14px;
}

.av-months-head {
    font-weight: 800;
    font-size: 18px;
    margin-bottom: 6px;
}

.av-months-sub {
    color: #6c757d;
    margin-bottom: 14px;
}

.av-months-hint {
    margin-top: 12px;
    color: #6c757d;
}

.av-duration {
    font-weight: 800;
}


@media (max-width: 576px) {
    .view-toggle {
        display: none !important;
    }
}

.sprice {
    /*font-weight: 500;
    display: inline-block;
    float: right;
    margin-top: -13px;
    font-size: 18px;*/
    font-weight: 500;
    display: inline-block;
    float: right;
    margin-top: -16px;
    font-size: 13px;
    background: #d83941;
    border-radius: 50px;
    padding: 5px;
    color: #fff;
    min-width: 96px;
}

.w123{
    width:123px;
}
.spadl10{
    padding-left:10px;
    font-weight:600;
}

.icon-size{
    font-size:17px;
}

.icon-badge {
    position: absolute;
    top: -6px;
    right: -8px;
    min-width: 16px;
    height: 16px;
    background: red;
    color: white;
    border-radius: 50%;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
}

.icon-badge-guest {
    position: absolute;
    top: -3px;
    right: 38px;
    min-width: 16px;
    height: 16px;
    background: red;
    color: white;
    border-radius: 50%;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
}

.icon-size-guest {
    font-size: 26px;
}

/* Toast Container */
.av-toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Toast Card */
.av-toast {
    min-width: 300px;
    max-width: 360px;
    background: #ffffff;
    border-radius: 14px;
    padding: 14px 16px;
    box-shadow: 0 12px 30px rgba(0,0,0,0.12);
    display: flex;
    align-items: flex-start;
    gap: 12px;
    animation: slideIn 0.25s ease-out;
    border-left: 4px solid #dc3545; /* primary red */
}

/* Icon Circle */
.av-toast-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #f8f9fa;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #dc3545;
}

/* Content */
.av-toast-content {
    flex: 1;
}

.av-toast-title {
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 4px;
    color: #222;
}

.av-toast-body {
    font-size: 13px;
    color: #666;
    line-height: 1.4;
    word-break: break-word;
}

/* Close button */
.av-toast-close {
    font-size: 16px;
    cursor: pointer;
    color: #999;
}

    .av-toast-close:hover {
        color: #000;
    }

/* Animation */
@keyframes slideIn {
    from {
        transform: translateX(40px);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* ===== Access Denied page ===== */
.av-denied-wrap{max-width:860px;margin:0 auto;}
.av-denied-card{
  background:#fff;
  border:1px solid var(--av-border);
  border-radius:24px;
  box-shadow:0 18px 50px rgba(0,0,0,.08);
  overflow:hidden;
}
.av-denied-top{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:22px 22px 16px;
  background:
    radial-gradient(circle at 10% 0%, rgba(220,53,69,.12), transparent 55%),
    radial-gradient(circle at 90% 30%, rgba(0,0,0,.06), transparent 55%),
    #fff;
  border-bottom:1px solid var(--av-border);
}
.av-denied-icon{
  width:52px;height:52px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(220,53,69,.12);
  color:var(--av-accent);
  flex-shrink:0;
}
.av-denied-icon .material-icons{font-size:26px;}
.av-denied-title{margin:0;font-size:26px;font-weight:700;color:#111;letter-spacing:-.2px;}
.av-denied-sub{margin:6px 0 0;color:#6b7280;font-size:14px;line-height:1.45;}

.av-denied-body{padding:18px 22px 10px;}
.av-denied-user{display:flex;flex-direction:column;gap:14px;}
.av-denied-userhead{
  display:flex;align-items:center;gap:12px;
}
.av-avatar{
  width:46px;height:46px;border-radius:14px;
  background:#f3f4f6;border:1px solid var(--av-border);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.av-avatar .material-icons{font-size:22px;color:#111;}
.av-user-name{font-weight:700;color:#111;line-height:1.2;}
.av-user-meta{font-size:13px;color:#6b7280;line-height:1.2;}

.av-role-pill{
  margin-left:auto;
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 12px;border-radius:999px;
  font-weight:700;font-size:12px;
  background:rgba(220,53,69,.10);
  border:1px solid rgba(220,53,69,.22);
  color:#b02a37;
  white-space:nowrap;
}
.av-role-pill .material-icons{font-size:16px;}

.av-denied-kv{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 12px;
}
.av-denied-kv .kv{
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
  border-radius:16px;
  padding:12px 12px;
  min-width:0;
}
.av-denied-kv .k{font-size:12px;color:#6b7280;font-weight:600;margin-bottom:4px;}
.av-denied-kv .v{font-size:13px;color:#111;font-weight:600;word-break:break-word;}

.av-tip{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 12px;
  border-radius:16px;
  background:rgba(13,110,253,.06);
  border:1px solid rgba(13,110,253,.12);
  color:#1f2937;
  font-size:13px;
}
.av-tip .material-icons{font-size:18px;opacity:.85;margin-top:1px;}

.av-denied-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  padding:16px 22px 22px;
  border-top:1px solid rgba(0,0,0,.06);
}
.av-denied-actions .btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.av-denied-foot{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin-top:12px;
  color:#6b7280;
  font-size:12px;
}
.av-denied-foot .material-icons{font-size:18px;opacity:.75;}

@media (max-width: 576px){
  .av-denied-top{padding:18px 16px 14px;}
  .av-denied-body{padding:16px 16px 8px;}
  .av-denied-actions{padding:14px 16px 16px;justify-content:stretch;}
  .av-denied-actions .btn{width:100%;justify-content:center;}
  .av-denied-kv{grid-template-columns:1fr;}
  .av-role-pill{margin-left:0;}
}

.field-validation-error{
    font-size:12px;
}


.location-prompt {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: 16px;
    z-index: 9999;
    display: block;
}

    .location-prompt.d-none {
        display: none !important;
    }

.location-prompt__content {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #111827;
    color: #fff;
    border-radius: 18px;
    padding: 14px 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.22);
    border: 1px solid rgba(255,255,255,0.08);
}

.location-prompt__icon {
    width: 42px;
    height: 42px;
    min-width: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.12);
}

    .location-prompt__icon .material-icons {
        font-size: 22px;
        color: #fff;
    }

.location-prompt__text {
    flex: 1;
    min-width: 0;
}

.location-prompt__title {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 4px;
}

.location-prompt__desc {
    font-size: 12px;
    line-height: 1.4;
    color: rgba(255,255,255,0.8);
}

.location-prompt__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

    .location-prompt__actions .btn-link {
        color: #fff;
        text-decoration: none;
        opacity: 0.85;
    }

        .location-prompt__actions .btn-link:hover {
            opacity: 1;
        }

@media (max-width: 768px) {
    .location-prompt__content {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .location-prompt__actions {
        width: 100%;
        margin-left: 56px;
    }
}
.sa-title, .sa-btn {
    font-size: 21px !important;
    font-weight: 700 !important;
}

.custom-swal-height {
    height: 358px; 
}


.av-empty-state {
    min-height: 65vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 15px;
}

.av-empty-card {
    max-width: 460px;
    width: 100%;
    text-align: center;
    background: #fff;
    border-radius: 18px;
    padding: 38px 30px;
    box-shadow: 0 12px 35px rgba(0,0,0,0.08);
    border: 1px solid #f1f1f1;
}

.av-empty-icon {
    width: 78px;
    height: 78px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background: #fff3f3;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 38px;
}

.av-empty-card h3 {
    font-size: 24px;
    font-weight: 700;
    color: #2b2b2b;
    margin-bottom: 10px;
}

.av-empty-card p {
    font-size: 15px;
    color: #777;
    line-height: 1.6;
    margin-bottom: 24px;
}

.av-empty-btn {
    display: inline-block;
    padding: 11px 24px;
    border-radius: 30px;
    background: #e63b45;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}

    .av-empty-btn:hover {
        background: #cf3039;
        color: #fff;
    }

    .nowrap{
        white-space:nowrap;
    }