/* GrL'Ca Parking — Modern Clean */

:root {
    --g-font: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    --g-bg: #f8f9fb;
    --g-surface: #fff;
    --g-border: #e5e8ed;
    --g-text: #1a2332;
    --g-soft: #5f6d7e;
    --g-muted: #94a0b0;
    --g-accent: #2563eb;
    --g-accent-h: #1d4ed8;
    --g-accent-bg: #eff4ff;
    --g-ok: #059669; --g-ok-bg: #ecfdf5;
    --g-warn: #d97706; --g-warn-bg: #fffbeb;
    --g-err: #dc2626; --g-err-bg: #fef2f2;
    --g-r: 12px; --g-rs: 8px;
    --g-sh: 0 1px 3px rgba(0,0,0,.05);
    --g-sh2: 0 4px 14px rgba(0,0,0,.06);
    --g-sh3: 0 12px 32px rgba(0,0,0,.08);
    --g-t: 150ms cubic-bezier(.4,0,.2,1);
}

/* Base */
.grlca-search-wrapper,.grlca-results-wrapper,.grlca-customer-wrapper,.grlca-manager-wrapper {
    font-family: var(--g-font); color: var(--g-text); line-height: 1.6; -webkit-font-smoothing: antialiased;
}

/* ── Search ── */
.grlca-search-wrapper {
    background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r);
    padding: 28px 32px; box-shadow: var(--g-sh);
}
.grlca-search-wrapper * { box-sizing: border-box; }
.grlca-search-form .grlca-search-fields { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; }
.grlca-search-form .grlca-search-field { flex: 1; min-width: 150px; }
.grlca-search-form .grlca-search-field label {
    display: block; margin: 0 0 6px; padding: 0;
    font-size: 13px; font-weight: 500; color: var(--g-soft); letter-spacing: .01em;
    line-height: 1.3; font-family: var(--g-font);
}
.grlca-search-form .grlca-search-field input,
.grlca-search-form .grlca-search-field input[type="text"],
.grlca-search-form .grlca-search-field input[type="date"],
.grlca-search-form .grlca-search-field select.grlca-time-select {
    display: block;
    width: 100% !important;
    height: 46px !important;
    padding: 0 14px !important;
    margin: 0 !important;
    border: 1px solid var(--g-border) !important;
    border-radius: var(--g-rs) !important;
    font-size: 14px !important;
    font-family: var(--g-font) !important;
    color: var(--g-text) !important;
    background: #fff !important;
    line-height: 46px !important;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color var(--g-t), box-shadow var(--g-t);
}
.grlca-search-form .grlca-search-field input:focus {
    outline: none !important;
    border-color: var(--g-accent) !important;
    box-shadow: 0 0 0 3px var(--g-accent-bg) !important;
}
.grlca-search-form .grlca-search-field input[type="date"] {
    cursor: pointer;
    position: relative;
}
.grlca-search-form .grlca-search-field input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    height: auto;
    opacity: 0;
    cursor: pointer;
}
#grlca-adjust-dates input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    height: auto;
    opacity: 0;
    cursor: pointer;
}
#grlca-adjust-dates select {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid var(--g-border, #e5e8ed);
    border-radius: 6px;
    font-size: 13px;
    background: #fff;
}
.grlca-search-form .grlca-search-field select {
    display: block;
    width: 100% !important;
    height: 46px !important;
    padding: 0 14px !important;
    margin: 0 !important;
    border: 1px solid var(--g-border) !important;
    border-radius: var(--g-rs) !important;
    font-size: 14px !important;
    font-family: var(--g-font) !important;
    color: var(--g-text) !important;
    background: #fff !important;
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important;
    background-position: right 12px center !important;
    background-repeat: no-repeat !important;
    background-size: 16px !important;
    padding-right: 36px !important;
    cursor: pointer;
    transition: border-color var(--g-t), box-shadow var(--g-t);
}
.grlca-search-form .grlca-search-field select:focus {
    outline: none !important;
    border-color: var(--g-accent) !important;
    box-shadow: 0 0 0 3px var(--g-accent-bg) !important;
}
.grlca-search-form .grlca-search-submit { min-width: 100%; display: flex; justify-content: center; }
.grlca-search-form .grlca-search-submit .grlca-btn {
    height: 46px; padding: 0 28px; line-height: 46px; white-space: nowrap;
}
/* Search Amenity Filter */
.grlca-search-amenities { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--g-border); }
.grlca-search-amenities-label { display: block; font-size: 13px; font-weight: 500; color: var(--g-soft); margin-bottom: 10px; }
.grlca-search-amenities-list { display: flex; flex-wrap: wrap; gap: 8px; }
.grlca-search-amenity-chip {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 6px 14px; border: 1px solid var(--g-border); border-radius: 20px;
    font-size: 13px; font-weight: 500; color: var(--g-soft);
    cursor: pointer; transition: all var(--g-t); user-select: none;
}
.grlca-search-amenity-chip:hover { border-color: var(--g-accent); color: var(--g-accent); background: var(--g-accent-bg); }
.grlca-search-amenity-chip input[type="checkbox"] { display: none; }
.grlca-search-amenity-chip input[type="checkbox"]:checked + .dashicons { color: var(--g-accent); }
.grlca-search-amenity-chip:has(input:checked) { background: var(--g-accent-bg); border-color: var(--g-accent); color: var(--g-accent); }
.grlca-search-amenity-chip .dashicons { font-size: 14px; width: 14px; height: 14px; line-height: 14px; }

/* ── Buttons ── */
.grlca-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    padding: 11px 24px; border: none; border-radius: var(--g-rs);
    font: 600 14px/1.4 var(--g-font); cursor: pointer; text-decoration: none; transition: all var(--g-t);
}
.grlca-btn-primary { background: var(--g-accent); color: #fff; box-shadow: 0 1px 3px rgba(37,99,235,.25); }
.grlca-btn-primary:hover { background: var(--g-accent-h); box-shadow: 0 3px 8px rgba(37,99,235,.3); transform: translateY(-1px); }
.grlca-btn-secondary { background: var(--g-bg); color: var(--g-text); border: 1px solid var(--g-border); }
.grlca-btn-secondary:hover { background: #eef0f4; }
.grlca-btn-danger { background: var(--g-err); color: #fff; }
.grlca-btn-danger:hover { background: #b91c1c; }
.grlca-btn-sm { padding: 6px 14px; font-size: 13px; border-radius: 6px; }

/* ── Notices ── */
.grlca-notice { padding: 14px 18px; border-radius: var(--g-rs); font-size: 14px; margin-bottom: 16px; background: var(--g-bg); color: var(--g-soft); border: 1px solid var(--g-border); }
.grlca-notice-success { background: var(--g-ok-bg); color: var(--g-ok); border-color: #a7f3d0; }
.grlca-notice-error { background: var(--g-err-bg); color: var(--g-err); border-color: #fecaca; }

/* ── Dashboard Nav (pill-style) ── */
.grlca-dashboard-nav { display: flex; gap: 4px; margin-bottom: 32px; padding: 4px; background: var(--g-bg); border-radius: var(--g-r); border: 1px solid var(--g-border); flex-wrap: wrap; }
.grlca-nav-item { padding: 10px 20px; text-decoration: none; color: var(--g-soft); font-weight: 500; font-size: 14px; border-radius: var(--g-rs); transition: all var(--g-t); }
.grlca-nav-item:hover { color: var(--g-text); background: var(--g-surface); }
.grlca-nav-item.active { color: var(--g-accent); background: var(--g-surface); box-shadow: var(--g-sh); font-weight: 600; }

/* ── Results ── */
.grlca-results-wrapper { padding: 4px 0; }
.grlca-results-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.grlca-results-header h2 { font-size: 22px; font-weight: 700; margin: 0 0 4px; }
.grlca-results-radius-filter select { padding: 11px 14px; border: 1px solid var(--g-border); border-radius: var(--g-rs); font: 14px var(--g-font); background: #fff; color: var(--g-text); transition: border-color var(--g-t), box-shadow var(--g-t); }
.grlca-search-dates { color: var(--g-muted); font-size: 14px; margin: 0; }
.grlca-lot-distance { font-size: 13px !important; color: var(--g-accent) !important; }
.grlca-lot-result {
    background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r);
    margin-bottom: 20px; box-shadow: var(--g-sh); overflow: hidden; transition: box-shadow var(--g-t);
}
.grlca-lot-result:hover { box-shadow: var(--g-sh2); }
.grlca-lot-result-header { display: flex; gap: 18px; padding: 24px; align-items: flex-start; }
.grlca-lot-logo img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--g-rs); border: 1px solid var(--g-border); }
.grlca-lot-info h3 { margin: 0 0 6px; font-size: 18px; font-weight: 700; }
.grlca-lot-info p { margin: 2px 0; font-size: 14px; color: var(--g-soft); }
.grlca-lot-amenities { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.grlca-amenity-tag { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; background: var(--g-accent-bg); border-radius: 20px; font-size: 12px; font-weight: 500; color: var(--g-accent); }
.grlca-amenity-tag .dashicons { font-size: 13px; width: 13px; height: 13px; line-height: 13px; }
.grlca-lot-types { padding: 0 24px 24px; }
.grlca-types-table { width: 100%; border-collapse: separate; border-spacing: 0; }
.grlca-types-table th, .grlca-types-table td { padding: 12px 14px; text-align: left; font-size: 14px; }
.grlca-types-table th { font-weight: 500; color: var(--g-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--g-border); }
.grlca-types-table td { border-bottom: 1px solid #f1f3f5; color: var(--g-soft); }
.grlca-types-table tr:last-child td { border-bottom: none; }
.grlca-types-table td strong { color: var(--g-text); }
.grlca-book-btn { padding: 8px 20px; font-size: 13px; }
/* Mobile/Desktop visibility helpers */
.grlca-show-mobile { display: none !important; }
/* Mobile type cards (hidden by default, shown in mobile media query) */
.grlca-mobile-types { flex-direction: column; gap: 10px; }
.grlca-mobile-type-card {
    background: var(--g-bg); border: 1px solid var(--g-border); border-radius: var(--g-rs); padding: 14px;
}
.grlca-mobile-type-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.grlca-mobile-type-top strong { font-size: 15px; color: var(--g-text); }
.grlca-mobile-type-avail { font-size: 12px; color: var(--g-muted); font-weight: 500; }
.grlca-mobile-type-rates { font-size: 12px; color: var(--g-soft); margin-bottom: 10px; }
.grlca-mobile-type-rates small { font-size: 12px; }
.grlca-mobile-type-bottom { display: flex; justify-content: space-between; align-items: center; }
.grlca-mobile-type-price { font-size: 18px; font-weight: 700; color: var(--g-text); }

/* ── Revenue Cards ── */
.grlca-revenue-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; margin-bottom: 28px; }
.grlca-revenue-card { background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r); padding: 22px 18px; text-align: center; box-shadow: var(--g-sh); }
.grlca-revenue-card h3 { margin: 0 0 8px; font-size: 11px; font-weight: 600; color: var(--g-muted); text-transform: uppercase; letter-spacing: .06em; }
.grlca-revenue-amount { font-size: 28px; font-weight: 700; color: var(--g-text); letter-spacing: -.02em; }

/* ── Overview ── */
.grlca-overview-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-bottom: 24px; }
.grlca-overview-card {
    background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r);
    padding: 22px; box-shadow: var(--g-sh); transition: box-shadow var(--g-t), transform var(--g-t);
}
.grlca-overview-card:hover { box-shadow: var(--g-sh2); transform: translateY(-2px); }
.grlca-overview-card h3 { margin: 0 0 8px; font-size: 16px; font-weight: 600; }
.grlca-overview-card p { margin: 3px 0; font-size: 14px; color: var(--g-soft); }

/* ── Booking Cards ── */
.grlca-bookings-list { display: flex; flex-direction: column; gap: 12px; }
.grlca-booking-card { background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r); overflow: hidden; box-shadow: var(--g-sh); }
.grlca-booking-header { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; background: var(--g-bg); border-bottom: 1px solid var(--g-border); }
.grlca-booking-id { font-weight: 600; }
.grlca-booking-body { padding: 18px 20px; }
.grlca-booking-body p { margin: 4px 0; font-size: 14px; color: var(--g-soft); }
.grlca-booking-body p strong { color: var(--g-text); }

/* ── Status ── */
.grlca-status { display: inline-flex; padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.grlca-status-confirmed, .grlca-status-publish { background: var(--g-ok-bg); color: var(--g-ok); }
.grlca-status-pending { background: var(--g-warn-bg); color: var(--g-warn); }
.grlca-status-cancelled { background: var(--g-err-bg); color: var(--g-err); }
.grlca-status-draft { background: #f3f4f6; color: #6b7280; }

/* ── Forms ── */
.grlca-form-row { margin-bottom: 16px; }
.grlca-form-row label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 13px; color: var(--g-soft); text-transform: uppercase; letter-spacing: .03em; }
.grlca-form-row input, .grlca-form-row select, .grlca-form-row textarea {
    width: 100%; max-width: 100%; padding: 11px 14px; border: 1px solid var(--g-border); border-radius: var(--g-rs);
    font: 14px var(--g-font); color: var(--g-text); background: #fff; box-sizing: border-box;
    transition: border-color var(--g-t), box-shadow var(--g-t);
}
.grlca-form-row input:focus, .grlca-form-row select:focus, .grlca-form-row textarea:focus { outline: none; border-color: var(--g-accent); box-shadow: 0 0 0 3px var(--g-accent-bg); }
.grlca-form-row input::placeholder, .grlca-form-row textarea::placeholder { color: var(--g-muted); }
.grlca-input-wide { max-width: 520px !important; }
.grlca-form-row input:disabled { background: #f3f4f6; color: var(--g-muted); cursor: not-allowed; }
.grlca-form-row small { display: block; color: var(--g-muted); margin-top: 5px; font-size: 12px; }

/* ── Modal ── */
.grlca-modal { position: fixed; inset: 0; background: rgba(15,23,42,.4); backdrop-filter: blur(4px); z-index: 999999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.grlca-modal-content { background: var(--g-surface); border-radius: 16px; padding: 32px; max-width: 480px; width: 100%; max-height: 85vh; overflow-y: auto; position: relative; box-shadow: var(--g-sh3); animation: gm-in .2s ease-out; }
@keyframes gm-in { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }
.grlca-modal-close { position: absolute; top: 16px; right: 20px; font-size: 22px; cursor: pointer; color: var(--g-muted); width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 8px; transition: all var(--g-t); line-height: 1; }
.grlca-modal-close:hover { background: var(--g-bg); color: var(--g-text); }
.grlca-modal-content h2 { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.grlca-auth-buttons { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.grlca-auth-buttons .grlca-btn { text-align: center; padding: 13px 24px; }

/* ── Table ── */
.grlca-simple-table { width: 100%; border-collapse: separate; border-spacing: 0; margin-top: 12px; border: 1px solid var(--g-border); border-radius: var(--g-rs); overflow: hidden; }
.grlca-simple-table th, .grlca-simple-table td { padding: 10px 14px; font-size: 13px; text-align: left; }
.grlca-simple-table th { background: var(--g-bg); font-weight: 600; color: var(--g-soft); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--g-border); }
.grlca-simple-table td { border-bottom: 1px solid #f1f3f5; color: var(--g-soft); }
.grlca-simple-table tr:last-child td { border-bottom: none; }

/* ── Lot Card ── */
.grlca-lot-card { background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r); padding: 24px; margin-bottom: 16px; box-shadow: var(--g-sh); }
.grlca-lot-card h3 { margin: 0; font-size: 17px; font-weight: 600; display: flex; align-items: center; gap: 10px; }

/* ── Parking Types ── */
.grlca-parking-type-row { background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-rs); padding: 14px 18px; margin-bottom: 10px; transition: box-shadow var(--g-t); }
.grlca-parking-type-row:hover { box-shadow: var(--g-sh); }
.grlca-pt-header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.grlca-pt-header strong { flex: 1; font-size: 15px; }
.grlca-pt-qty { font-size: 12px; font-weight: 600; color: var(--g-muted); background: var(--g-bg); padding: 3px 10px; border-radius: 20px; border: 1px solid var(--g-border); }
.grlca-pt-details { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--g-border); }
.grlca-capacity-badge { font-size: 12px; font-weight: 600; background: var(--g-accent); color: #fff; padding: 4px 12px; border-radius: 20px; float: right; }

/* ── Calendar ── */
.grlca-calendar-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; border: 1px solid var(--g-border); border-radius: var(--g-rs); overflow: hidden; }
.grlca-calendar-table th { background: var(--g-bg); padding: 10px 4px; text-align: center; font-size: 12px; font-weight: 600; color: var(--g-muted); text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--g-border); }
.grlca-calendar-table td { border-bottom: 1px solid #f1f3f5; border-right: 1px solid #f1f3f5; vertical-align: top; padding: 6px; height: 80px; font-size: 12px; }
.grlca-calendar-table td:last-child { border-right: none; }
.grlca-calendar-table tr:last-child td { border-bottom: none; }
.grlca-cal-empty { background: var(--g-bg); }
.grlca-cal-today { background: var(--g-accent-bg) !important; }
.grlca-cal-day-num { font-weight: 700; font-size: 13px; margin-bottom: 4px; color: var(--g-text); }
.grlca-cal-day { cursor: pointer; transition: background var(--g-t); }
.grlca-cal-day:hover { background: var(--g-bg); }
.grlca-cal-slot { border-radius: 4px; padding: 1px 5px; margin-bottom: 2px; font-size: 10px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grlca-cal-green { background: var(--g-ok-bg); color: var(--g-ok); }
.grlca-cal-orange { background: var(--g-warn-bg); color: var(--g-warn); }
.grlca-cal-red { background: var(--g-err-bg); color: var(--g-err); }

/* ── Login ── */
.grlca-login-form { max-width: 400px; margin: 60px auto; padding: 36px; background: var(--g-surface); border: 1px solid var(--g-border); border-radius: 16px; box-shadow: var(--g-sh2); }
.grlca-login-form h2 { margin-bottom: 24px; font-size: 22px; font-weight: 700; text-align: center; }
.grlca-login-form .grlca-form-row label { text-align: left; }
.grlca-login-form input[type="text"], .grlca-login-form input[type="email"], .grlca-login-form input[type="password"] {
    width: 100%; padding: 11px 14px; border: 1px solid var(--g-border); border-radius: var(--g-rs);
    font: 14px var(--g-font); color: var(--g-text); background: #fff; box-sizing: border-box;
    transition: border-color var(--g-t), box-shadow var(--g-t);
}
.grlca-login-form input[type="text"]:focus, .grlca-login-form input[type="email"]:focus, .grlca-login-form input[type="password"]:focus { outline: none; border-color: var(--g-accent); box-shadow: 0 0 0 3px var(--g-accent-bg); }
.grlca-login-form input[type="text"]::placeholder, .grlca-login-form input[type="email"]::placeholder, .grlca-login-form input[type="password"]::placeholder { color: var(--g-muted); }
.grlca-login-form input[type="submit"], .grlca-login-form .grlca-btn-primary { width: 100%; padding: 12px 28px; background: var(--g-accent); color: #fff; border: none; border-radius: var(--g-rs); font: 700 14px var(--g-font); cursor: pointer; transition: background var(--g-t); }
.grlca-login-form input[type="submit"]:hover, .grlca-login-form .grlca-btn-primary:hover { background: var(--g-accent-h); }

/* ── Section Headers ── */
.grlca-dashboard-content > h2 { font-size: 20px; font-weight: 700; margin: 0 0 20px; }
.grlca-dashboard-content > h3 { font-size: 16px; font-weight: 600; margin: 28px 0 14px; }
.grlca-cancel-notice { font-size: 13px; color: var(--g-muted) !important; }

/* ── Day Bookings Modal ── */
.grlca-day-bookings-grid { display: flex; flex-direction: column; gap: 10px; }
.grlca-day-booking-card {
    background: var(--g-bg); border: 1px solid var(--g-border); border-radius: var(--g-rs);
    padding: 16px 18px; transition: box-shadow var(--g-t);
}
.grlca-day-booking-card:hover { box-shadow: var(--g-sh); }
.grlca-day-booking-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.grlca-day-booking-id { font-weight: 700; font-size: 13px; color: var(--g-text); }
.grlca-day-booking-name { font-size: 15px; font-weight: 600; color: var(--g-text); margin-bottom: 4px; }
.grlca-day-booking-detail { font-size: 13px; color: var(--g-soft); line-height: 1.5; }
.grlca-day-booking-meta { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--g-border); font-size: 13px; font-weight: 600; color: var(--g-text); }
.grlca-day-booking-dates { font-size: 12px; color: var(--g-muted); margin-top: 6px; }

/* ── Promo Modal ── */
.grlca-promo-modal-inner h2 { font-size: 20px; font-weight: 700; margin: 0 0 20px; }

/* ── Pricing Calendar (Manager) ── */
#grlca-mgr-pricing-modal .grlca-modal-content { max-width: 560px; }
.grlca-pc-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.grlca-pc-month { font-size: 16px; font-weight: 700; color: var(--g-text); }
.grlca-pc-table {
    width: 100%; border-collapse: separate; border-spacing: 3px;
    font-family: var(--g-font); table-layout: fixed;
}
.grlca-pc-table th {
    text-align: center; font-size: 11px; font-weight: 600; text-transform: uppercase;
    letter-spacing: .05em; color: var(--g-muted); padding: 6px 0;
}
.grlca-pc-table td { text-align: center; vertical-align: top; }
.grlca-pc-empty { background: transparent; }
.grlca-pc-day {
    background: var(--g-bg); border: 1px solid var(--g-border); border-radius: 8px;
    padding: 6px 2px; cursor: pointer; transition: all var(--g-t);
}
.grlca-pc-day:hover { border-color: var(--g-accent); background: var(--g-accent-bg); box-shadow: 0 0 0 2px var(--g-accent-bg); }
.grlca-pc-today { border-color: var(--g-accent); background: var(--g-accent-bg); }
.grlca-pc-override { border-color: #f59e0b; background: #fffbeb; }
.grlca-pc-override:hover { border-color: #d97706; background: #fef3c7; }
.grlca-pc-range { border-color: var(--g-accent) !important; background: var(--g-accent-bg) !important; box-shadow: 0 0 0 2px rgba(59,130,246,0.2) !important; }
.grlca-pc-table { user-select: none; -webkit-user-select: none; }
.grlca-pc-num { display: block; font-size: 14px; font-weight: 600; color: var(--g-text); line-height: 1.4; }
.grlca-pc-badge {
    display: inline-block; margin-top: 2px; font-size: 8px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em;
    color: #92400e; background: #fde68a; padding: 1px 4px; border-radius: 3px;
}
/* Availability: Closed days */
.grlca-avail-closed { border-color: #fca5a5 !important; background: #fef2f2 !important; }
.grlca-avail-closed:hover { border-color: #ef4444 !important; background: #fee2e2 !important; }
.grlca-avail-closed .grlca-pc-num { color: #dc2626; }
.grlca-avail-badge {
    display: inline-block; margin-top: 2px; font-size: 8px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em;
    color: #991b1b; background: #fecaca; padding: 1px 4px; border-radius: 3px;
}
.grlca-avail-slots { border-color: #a78bfa !important; background: #f5f3ff !important; }
.grlca-avail-slots:hover { border-color: #7c3aed !important; background: #ede9fe !important; }
/* Availability detail panel */
.grlca-avail-slot-row {
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    padding: 8px 0; border-bottom: 1px solid var(--g-border);
}
.grlca-avail-slot-row:last-child { border-bottom: none; }
.grlca-avail-slot-row label { flex: 1; font-size: 14px; font-weight: 500; color: var(--g-text); }
.grlca-avail-slot-row input {
    width: 80px; padding: 8px 10px; border: 1px solid var(--g-border); border-radius: var(--g-rs);
    font-size: 14px; text-align: center; font-family: var(--g-font); background: #fff; color: var(--g-text);
    transition: border-color var(--g-t), box-shadow var(--g-t);
}
.grlca-avail-slot-row input:focus { outline: none; border-color: var(--g-accent); box-shadow: 0 0 0 3px var(--g-accent-bg); }
.grlca-promo-summary {
    background: var(--g-bg); border: 1px solid var(--g-border); border-radius: var(--g-rs);
    padding: 16px; margin-bottom: 20px;
}
.grlca-promo-summary-row {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 14px; color: var(--g-soft); margin-bottom: 6px;
}
.grlca-promo-summary-price { font-size: 22px; font-weight: 700; color: var(--g-text); }
.grlca-promo-field { margin-bottom: 4px; }
.grlca-promo-field > label {
    display: block; font-size: 13px; font-weight: 500; color: var(--g-soft); margin-bottom: 8px;
}
.grlca-promo-input-row { display: flex; gap: 8px; }
.grlca-promo-input-row input {
    flex: 1; padding: 11px 14px; border: 1px solid var(--g-border); border-radius: var(--g-rs);
    font-size: 14px; font-family: var(--g-font); text-transform: uppercase; letter-spacing: .04em;
    background: #fff; color: var(--g-text); transition: border-color var(--g-t), box-shadow var(--g-t);
}
.grlca-promo-input-row input::placeholder { color: var(--g-muted); text-transform: none; letter-spacing: 0; }
.grlca-promo-input-row input:focus { outline: none; border-color: var(--g-accent); box-shadow: 0 0 0 3px var(--g-accent-bg); }
.grlca-promo-input-row .grlca-btn { height: 42px; padding: 0 18px; white-space: nowrap; }
#grlca-promo-result { margin-top: 10px; }

/* ── Vehicle & Topup Inputs ── */
.grlca-vehicle-input, .grlca-topup-input {
    width: 100%; padding: 11px 14px; border: 1px solid var(--g-border); border-radius: var(--g-rs);
    font: 14px var(--g-font); color: var(--g-text); background: #fff; box-sizing: border-box;
    transition: border-color var(--g-t), box-shadow var(--g-t); margin-bottom: 8px;
}
.grlca-vehicle-input:focus, .grlca-topup-input:focus { outline: none; border-color: var(--g-accent); box-shadow: 0 0 0 3px var(--g-accent-bg); }
.grlca-vehicle-input::placeholder, .grlca-topup-input::placeholder { color: var(--g-muted); }
.grlca-vehicle-color { width: 110px !important; flex: none !important; }
.grlca-topup-input { width: 130px; }

/* ── Manager Edit Lot Layout ── */
.grlca-mgr-edit-header { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.grlca-mgr-edit-header h2 { margin: 0; font-size: 22px; font-weight: 700; }
.grlca-mgr-edit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.grlca-mgr-edit-col { display: flex; flex-direction: column; gap: 20px; }
.grlca-mgr-edit-card {
    background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r);
    padding: 24px; box-shadow: var(--g-sh);
}
.grlca-mgr-edit-card h3 { font-size: 16px; font-weight: 700; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--g-border); }
.grlca-mgr-media-preview { min-height: 40px; }
.grlca-mgr-gallery-preview { display: flex; flex-wrap: wrap; gap: 8px; min-height: 40px; }
.grlca-mgr-gallery-thumb { position: relative; display: inline-block; }
.grlca-mgr-gallery-thumb img { display: block; }
.grlca-mgr-gallery-remove {
    position: absolute; top: -6px; right: -6px; width: 22px; height: 22px; border-radius: 50%;
    background: var(--g-err); color: #fff; border: 2px solid var(--g-surface); font-size: 13px; line-height: 1;
    cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;
    transition: transform var(--g-t);
}
.grlca-mgr-gallery-remove:hover { transform: scale(1.15); }

/* ── Lot Detail Link ── */
.grlca-lot-detail-link { color: var(--g-text); text-decoration: none; border-bottom: 2px solid var(--g-accent-bg); transition: all var(--g-t); }
.grlca-lot-detail-link:hover { color: var(--g-accent); border-color: var(--g-accent); }
/* ── Lot Detail Modal ── */
#grlca-lot-detail-modal { z-index: 999999; }
.grlca-ld-header { display: flex; gap: 16px; align-items: center; margin-bottom: 16px; }
.grlca-ld-logo { width: 80px; height: 80px; object-fit: cover; border-radius: 12px; flex-shrink: 0; }
.grlca-ld-gallery { display: flex; gap: 8px; overflow-x: auto; margin: 16px 0; padding-bottom: 8px; }
.grlca-ld-gallery-img { width: 140px; height: 100px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.grlca-ld-desc { color: var(--g-soft); font-size: 14px; line-height: 1.6; margin: 12px 0; }
.grlca-ld-amenities { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }

/* ── Lot Profile Page ── */
.grlca-profile-wrapper { font-family: var(--g-font); max-width: 960px; margin: 0 auto; padding: 20px 0; }
.grlca-profile-hero { margin-bottom: 24px; }
.grlca-profile-logo-img { width: 90px; height: 90px; object-fit: cover; border-radius: 14px; }
.grlca-profile-header { display: flex; gap: 20px; align-items: center; }
.grlca-profile-info h1 { font-size: 28px; font-weight: 700; margin: 0 0 6px; color: var(--g-text); }
.grlca-profile-info p { margin: 4px 0; color: var(--g-soft); font-size: 14px; }
.grlca-profile-info .dashicons { font-size: 16px; width: 16px; height: 16px; vertical-align: middle; margin-right: 4px; color: var(--g-muted); }
.grlca-profile-gallery { display: flex; gap: 10px; overflow-x: auto; margin: 0 0 24px; padding-bottom: 8px; }
.grlca-profile-gallery-img { width: 200px; height: 140px; object-fit: cover; border-radius: 10px; flex-shrink: 0; }
.grlca-profile-grid { display: grid; grid-template-columns: 1fr 340px; gap: 28px; align-items: start; }
.grlca-profile-main { display: flex; flex-direction: column; gap: 24px; }
.grlca-profile-section { background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r); padding: 20px; box-shadow: var(--g-sh); }
.grlca-profile-section h3 { font-size: 16px; font-weight: 700; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--g-border); color: var(--g-text); }
.grlca-profile-desc { color: var(--g-soft); font-size: 14px; line-height: 1.7; }
.grlca-profile-desc p { margin: 0 0 8px; }
.grlca-profile-amenities { display: flex; flex-wrap: wrap; gap: 8px; }
.grlca-profile-sidebar { position: sticky; top: 24px; }
.grlca-profile-search-card {
    background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-r);
    padding: 24px; box-shadow: var(--g-sh2);
}
.grlca-profile-search-card h3 { font-size: 17px; font-weight: 700; margin: 0 0 16px; color: var(--g-text); }
.grlca-profile-search-card .grlca-form-row { margin-bottom: 12px; }
.grlca-profile-search-card .grlca-form-row label { display: block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--g-muted); margin-bottom: 4px; }
.grlca-profile-search-card .grlca-form-row input {
    width: 100%; padding: 11px 14px; border: 1px solid var(--g-border); border-radius: var(--g-rs);
    font-size: 14px; font-family: var(--g-font); color: var(--g-text); background: #fff;
}
.grlca-profile-search-card .grlca-form-row input:focus { outline: none; border-color: var(--g-accent); box-shadow: 0 0 0 3px var(--g-accent-bg); }
/* Profile: Availability result cards */
.grlca-profile-type-card {
    background: var(--g-bg); border: 1px solid var(--g-border); border-radius: var(--g-rs);
    padding: 14px; margin-bottom: 10px;
}
.grlca-profile-type-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.grlca-profile-type-header strong { font-size: 15px; color: var(--g-text); }
.grlca-profile-type-avail { font-size: 12px; color: var(--g-muted); font-weight: 500; }
.grlca-profile-type-rates { font-size: 12px; color: var(--g-soft); margin-bottom: 10px; }
.grlca-profile-type-footer { display: flex; justify-content: space-between; align-items: center; }
.grlca-profile-type-price { font-size: 18px; font-weight: 700; color: var(--g-text); }

/* ── Map Explorer ── */
.grlca-explorer-wrapper { font-family: var(--g-font); }
.grlca-explorer-header { margin-bottom: 20px; }
.grlca-explorer-header h2 { font-size: 24px; font-weight: 700; margin: 0 0 12px; }
.grlca-explorer-search { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.grlca-explorer-search input { flex: 1; min-width: 200px; padding: 11px 14px; border: 1px solid var(--g-border); border-radius: var(--g-rs); font-size: 14px; font-family: var(--g-font); background: #fff; color: var(--g-text); transition: border-color var(--g-t), box-shadow var(--g-t); }
.grlca-explorer-search input:focus { outline: none; border-color: var(--g-accent); box-shadow: 0 0 0 3px var(--g-accent-bg); }
.grlca-explorer-search input::placeholder { color: var(--g-muted); }
.grlca-explorer-search select { padding: 11px 14px; border: 1px solid var(--g-border); border-radius: var(--g-rs); font-size: 14px; font-family: var(--g-font); background: #fff; color: var(--g-text); }
.grlca-explorer-body { margin-top: 20px; }
.grlca-explorer-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin-top: 20px; }
.grlca-explorer-card {
    display: flex; gap: 12px; align-items: center; padding: 14px; text-decoration: none; color: var(--g-text);
    background: var(--g-surface); border: 1px solid var(--g-border); border-radius: var(--g-rs); transition: all var(--g-t);
}
.grlca-explorer-card:hover { border-color: var(--g-accent); box-shadow: var(--g-sh); }
.grlca-explorer-card-logo { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.grlca-explorer-card-info { display: flex; flex-direction: column; gap: 2px; }
.grlca-explorer-card-info strong { font-size: 14px; }
.grlca-explorer-card-info small { font-size: 12px; color: var(--g-muted); }
.grlca-explorer-dist { color: var(--g-accent) !important; font-weight: 500; }

/* ── Map Containers ── */
.grlca-map-container {
    width: 100%; height: 300px; border-radius: var(--g-rs);
    border: 1px solid var(--g-border); background: var(--g-bg);
}
.grlca-map-tall { height: 500px; }
#grlca-results-map { height: 350px; border-radius: 12px; }

/* ── Modal Sizes ── */
.grlca-modal-sm { max-width: 440px; }
.grlca-modal-lg { max-width: 680px; }

/* ── Global Mobile Safety ── */
.grlca-search-wrapper, .grlca-results-wrapper, .grlca-customer-wrapper,
.grlca-manager-wrapper, .grlca-profile-wrapper, .grlca-explorer-wrapper {
    box-sizing: border-box; overflow-x: hidden; max-width: 100%;
}
.grlca-search-wrapper *, .grlca-results-wrapper *, .grlca-customer-wrapper *,
.grlca-manager-wrapper *, .grlca-profile-wrapper *, .grlca-explorer-wrapper * {
    box-sizing: border-box;
}
/* Tables: always scrollable */
.grlca-lot-types, .grlca-profile-section { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.grlca-types-table { min-width: 480px; }
.grlca-simple-table { min-width: 400px; }

/* ── Responsive: Tablet ── */
@media (max-width: 768px) {
    .grlca-search-wrapper { padding: 20px; }
    .grlca-lot-result-header { flex-direction: column; gap: 12px; padding: 18px; }
    .grlca-lot-types { padding: 0 18px 18px; }
    .grlca-results-header { flex-direction: column; }
    .grlca-mgr-edit-grid { grid-template-columns: 1fr; }
    .grlca-profile-grid { grid-template-columns: 1fr; }
    .grlca-profile-sidebar { position: static; }
    .grlca-profile-info h1 { font-size: 24px; }
    .grlca-map-tall { height: 350px; }
    .grlca-explorer-list { grid-template-columns: 1fr; }
    .grlca-revenue-cards { grid-template-columns: repeat(2, 1fr); }
    .grlca-overview-grid { grid-template-columns: 1fr; }
    .grlca-calendar-table td { height: 60px; padding: 4px; font-size: 11px; }
}

/* ── Responsive: Mobile ── */
@media (max-width: 480px) {
    /* Search */
    .grlca-search-wrapper { padding: 16px; border-radius: 8px; }
    .grlca-search-form .grlca-search-fields { flex-direction: column; gap: 10px; }
    .grlca-search-form .grlca-search-field { min-width: 100% !important; flex: none; width: 100%; }
    .grlca-search-form .grlca-search-submit { width: 100%; }
    .grlca-search-form .grlca-search-submit .grlca-btn { width: 100%; text-align: center; }

    /* Nav */
    .grlca-dashboard-nav { flex-direction: column; gap: 2px; }
    .grlca-nav-item { padding: 10px 14px; font-size: 13px; }

    /* Results */
    .grlca-results-header h2 { font-size: 18px; }
    .grlca-lot-result { overflow: visible; }
    .grlca-lot-result-header { padding: 14px; }
    .grlca-lot-info h3 { font-size: 16px; }
    .grlca-lot-info p { font-size: 13px; }
    .grlca-lot-types { padding: 0 14px 14px; }
    .grlca-lot-logo img { width: 56px; height: 56px; }
    #grlca-results-map { height: 220px; }
    /* Show mobile cards, hide desktop table */
    .grlca-show-mobile { display: flex !important; }
    .grlca-hide-mobile { display: none !important; }

    /* Maps */
    .grlca-map-container { height: 220px; }
    .grlca-map-tall { height: 280px; }

    /* Modal */
    .grlca-modal { padding: 10px; }
    .grlca-modal-content { padding: 20px; border-radius: 12px; max-height: 90vh; max-width: 100%; }
    .grlca-modal-content h2 { font-size: 18px; }
    .grlca-modal-close { top: 10px; right: 12px; }
    .grlca-modal-sm, .grlca-modal-lg { max-width: 100%; }
    #grlca-mgr-pricing-modal .grlca-modal-content { max-width: 100%; }
    .grlca-ld-header { flex-direction: column; text-align: center; }
    .grlca-ld-logo { width: 60px; height: 60px; }
    .grlca-ld-gallery-img { width: 110px; height: 80px; }

    /* Profile */
    .grlca-profile-wrapper { padding: 10px 0; }
    .grlca-profile-header { flex-direction: column; text-align: center; gap: 12px; }
    .grlca-profile-info h1 { font-size: 22px; }
    .grlca-profile-section { padding: 16px; }
    .grlca-profile-search-card { padding: 18px; }
    .grlca-profile-gallery-img { width: 160px; height: 110px; }

    /* Explorer */
    .grlca-explorer-search { flex-direction: column; }
    .grlca-explorer-search input { min-width: 100%; width: 100%; }
    .grlca-explorer-search select { width: 100%; }
    .grlca-explorer-search .grlca-btn { width: 100%; }

    /* Manager */
    .grlca-mgr-edit-header { flex-direction: column; align-items: flex-start; gap: 8px; }
    .grlca-mgr-edit-card { padding: 16px; }
    .grlca-mgr-edit-header h2 { font-size: 18px; }
    .grlca-parking-type-row { padding: 10px 14px; }
    .grlca-pt-header { gap: 6px; }
    .grlca-pt-header strong { font-size: 14px; }

    /* Calendar */
    .grlca-pc-table { border-spacing: 2px; }
    .grlca-pc-day { padding: 4px 1px; }
    .grlca-pc-num { font-size: 12px; }
    .grlca-pc-badge, .grlca-avail-badge { font-size: 7px; padding: 0 3px; }
    .grlca-pc-nav .grlca-btn { padding: 4px 8px; font-size: 11px; }
    .grlca-pc-month { font-size: 14px; }

    /* Forms */
    .grlca-form-row input, .grlca-form-row select, .grlca-form-row textarea { max-width: 100%; }

    /* Revenue */
    .grlca-revenue-cards { grid-template-columns: 1fr; }
    .grlca-revenue-amount { font-size: 22px; }

    /* Booking cards */
    .grlca-booking-header { padding: 10px 14px; }
    .grlca-booking-body { padding: 14px; }
    .grlca-booking-body p { font-size: 13px; }

    /* Day bookings */
    .grlca-day-booking-card { padding: 12px; }

    /* Amenities */
    .grlca-amenity-tag { font-size: 11px; padding: 3px 8px; }
    .grlca-search-amenity-chip { padding: 5px 10px; font-size: 12px; }

    /* Login */
    .grlca-login-form { margin: 20px auto; padding: 24px; }

    /* Promo modal */
    .grlca-promo-input-row { flex-direction: column; }
    .grlca-promo-input-row .grlca-btn { width: 100%; }
}

/* ── Very small screens ── */
@media (max-width: 360px) {
    .grlca-search-wrapper { padding: 12px; }
    .grlca-modal { padding: 6px; }
    .grlca-modal-content { padding: 16px; }
    .grlca-profile-section { padding: 12px; }
    .grlca-profile-search-card { padding: 14px; }
    .grlca-pc-table th { font-size: 9px; }
    .grlca-pc-num { font-size: 11px; }
    .grlca-pc-badge, .grlca-avail-badge { display: none; }
}

/* ── Reviews ── */
.grlca-rating-badge { display:inline-flex; align-items:center; gap:4px; font-size:14px; margin:4px 0; }
.grlca-review-wrapper { max-width:600px; margin:0 auto; padding:20px 0; }
.grlca-review-card { background:#fff; border:1px solid var(--g-border); border-radius:var(--g-rl); padding:32px; }
.grlca-review-lot-name { font-size:18px; font-weight:600; color:var(--g-text); margin:0 0 4px; }
.grlca-review-category { display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--g-border); }
.grlca-review-category label { font-weight:500; font-size:14px; color:var(--g-text); }
.grlca-star-rating { display:flex; gap:4px; cursor:pointer; }
.grlca-star { font-size:28px; color:#d1d5db; transition:color 0.15s, transform 0.15s; user-select:none; }
.grlca-star.grlca-star-active { color:#f59e0b; }
.grlca-star.grlca-star-hover { color:#fbbf24; transform:scale(1.15); }
.grlca-review-comment { margin-top:16px; }
.grlca-review-comment label { display:block; font-weight:500; margin-bottom:6px; font-size:14px; }
.grlca-review-comment textarea { width:100%; border:1px solid var(--g-border); border-radius:var(--g-rs); padding:12px; font-size:14px; font-family:var(--g-font); resize:vertical; }
.grlca-review-comment textarea:focus { outline:none; border-color:var(--g-accent); box-shadow:0 0 0 3px var(--g-accent-bg); }

/* Reviews summary on profile */
.grlca-reviews-summary { display:flex; gap:24px; padding:20px; background:var(--g-bg); border-radius:var(--g-rs); border:1px solid var(--g-border); margin-bottom:20px; }
.grlca-reviews-overall { text-align:center; min-width:100px; }
.grlca-reviews-overall-score { font-size:42px; font-weight:700; color:var(--g-text); line-height:1; }
.grlca-reviews-breakdown { flex:1; display:flex; flex-direction:column; gap:6px; justify-content:center; }
.grlca-reviews-bar-row { display:flex; align-items:center; gap:8px; font-size:13px; }
.grlca-reviews-bar-label { width:120px; color:var(--g-soft); }
.grlca-reviews-bar { flex:1; height:8px; background:#e5e8ed; border-radius:4px; overflow:hidden; }
.grlca-reviews-bar-fill { height:100%; background:#f59e0b; border-radius:4px; transition:width 0.3s; }
.grlca-reviews-bar-val { width:28px; text-align:right; font-weight:600; color:var(--g-text); }

/* Individual review items */
.grlca-review-item { padding:16px 0; border-bottom:1px solid var(--g-border); }
.grlca-review-item:last-child { border-bottom:none; }
.grlca-review-item-header { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.grlca-review-item-avatar { width:36px; height:36px; border-radius:50%; background:var(--g-accent); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; flex-shrink:0; }
.grlca-review-item-comment { font-size:14px; color:var(--g-soft); line-height:1.6; padding-left:48px; }

@media (max-width:600px) {
    .grlca-reviews-summary { flex-direction:column; gap:16px; }
    .grlca-reviews-bar-label { width:90px; font-size:11px; }
    .grlca-review-item-comment { padding-left:0; margin-top:8px; }
    .grlca-review-category { flex-direction:column; align-items:flex-start; gap:6px; }
}

/* ── Wallet ── */
.grlca-wallet-balance-card { background:var(--g-bg); border:1px solid var(--g-border); border-radius:var(--g-rl); padding:24px; text-align:center; }
.grlca-wallet-amount { font-size:36px; font-weight:700; color:var(--g-text); line-height:1; margin-bottom:4px; }
.grlca-wallet-txns { margin-top:12px; }
.grlca-wallet-txn-row { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--g-border); }
.grlca-wallet-txn-row:last-child { border-bottom:none; }
.grlca-wallet-txn-credit { color:#059669; font-weight:700; }
.grlca-wallet-txn-debit { color:#dc2626; font-weight:700; }

/* ── FAQ ── */
.grlca-faq-item { border:1px solid var(--g-border); border-radius:var(--g-rs); margin-bottom:6px; }
.grlca-faq-item summary { padding:12px 16px; font-weight:600; font-size:14px; cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; }
.grlca-faq-item summary::after { content:'＋'; font-size:16px; color:var(--g-muted); transition:transform var(--g-t); }
.grlca-faq-item[open] summary::after { content:'−'; }
.grlca-faq-item p { padding:0 16px 12px; margin:0; font-size:14px; color:var(--g-soft); line-height:1.6; }

/* ── Loyalty Tracker ── */
.grlca-loyalty-tracker { background:linear-gradient(135deg,#faf5ff,#f0f9ff); border:1px solid #e0e7ff; border-radius:var(--g-rl); padding:20px; margin-bottom:20px; }
.grlca-loyalty-header { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.grlca-loyalty-icon { font-size:28px; }
.grlca-loyalty-header strong { display:block; font-size:15px; color:var(--g-text); }
.grlca-loyalty-sub { font-size:12px; color:var(--g-soft); }
.grlca-loyalty-bar-wrap { background:#e0e7ff; border-radius:99px; height:8px; overflow:hidden; margin-bottom:12px; }
.grlca-loyalty-bar { background:linear-gradient(90deg,#7c3aed,#3b82f6); height:100%; border-radius:99px; transition:width 0.6s ease; min-width:4px; }
.grlca-loyalty-dots { display:flex; gap:6px; justify-content:center; margin-bottom:10px; }
.grlca-loyalty-dot { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; background:#e0e7ff; color:var(--g-soft); border:2px solid #c7d2fe; transition:all 0.3s; }
.grlca-loyalty-dot.filled { background:linear-gradient(135deg,#7c3aed,#3b82f6); color:#fff; border-color:transparent; }
.grlca-loyalty-status { text-align:center; font-size:13px; color:var(--g-soft); margin:0; }

/* ── Loader Animation ── */
.grlca-loader{display:flex;flex-direction:column;align-items:center;gap:14px}
.grlca-loader-icon{position:relative;width:64px;height:64px}
.grlca-loader-icon svg{position:absolute;inset:0;width:100%;height:100%}
.grlca-loader-icon .grlca-shape{fill:var(--g-accent);opacity:0;animation:grlca-morph 3s ease-in-out infinite}
.grlca-loader-icon .grlca-shape-car{animation-delay:0s}
.grlca-loader-icon .grlca-shape-pin{animation-delay:1s}
.grlca-loader-icon .grlca-shape-plane{animation-delay:2s}
@keyframes grlca-morph{0%{opacity:0;transform:scale(.5) translateY(6px)}5%{opacity:1;transform:scale(1) translateY(0)}28%{opacity:1;transform:scale(1) translateY(0)}33%{opacity:0;transform:scale(.5) translateY(-6px)}100%{opacity:0}}
.grlca-loader-icon::before,.grlca-loader-icon::after{content:'';position:absolute;inset:-12px;border-radius:50%;border:2px solid var(--g-accent);opacity:0;animation:grlca-ripple 3s ease-out infinite}
.grlca-loader-icon::after{animation-delay:.6s}
@keyframes grlca-ripple{0%{transform:scale(.6);opacity:.4}100%{transform:scale(1.8);opacity:0}}
.grlca-loader-text{font-size:13px;font-weight:600;color:var(--g-soft);letter-spacing:.01em}
.grlca-loader-text span{display:inline-block;animation:grlca-txt 3s ease-in-out infinite}
.grlca-loader-text .grlca-t1{animation-delay:0s}.grlca-loader-text .grlca-t2{animation-delay:1s}.grlca-loader-text .grlca-t3{animation-delay:2s}
@keyframes grlca-txt{0%{opacity:0;transform:translateY(4px)}5%{opacity:1;transform:translateY(0)}28%{opacity:1;transform:translateY(0)}33%{opacity:0;transform:translateY(-4px)}100%{opacity:0}}
.grlca-loader-bar{width:120px;height:3px;border-radius:2px;background:var(--g-accent-bg);overflow:hidden}
.grlca-loader-bar::after{content:'';display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,var(--g-accent),var(--g-accent-h));animation:grlca-bar 2s ease-in-out infinite}
@keyframes grlca-bar{0%{width:0;margin-left:0}50%{width:60%;margin-left:20%}100%{width:0;margin-left:100%}}
/* Full-page overlay */
.grlca-overlay{position:fixed;inset:0;z-index:999999;background:rgba(248,249,251,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;transition:opacity .4s ease,visibility .4s ease}
.grlca-overlay.grlca-hidden{opacity:0;visibility:hidden;pointer-events:none}
.grlca-overlay .grlca-loader-icon{width:80px;height:80px}
.grlca-overlay .grlca-loader-icon::before,.grlca-overlay .grlca-loader-icon::after{inset:-16px}
.grlca-overlay .grlca-loader-text{font-size:15px}
.grlca-overlay .grlca-loader-bar{width:160px;height:4px}
/* Inline loader */
.grlca-inline-loader{padding:48px 24px;display:flex;align-items:center;justify-content:center}
.grlca-inline-loader .grlca-loader-icon{width:48px;height:48px}
.grlca-inline-loader .grlca-loader-icon::before,.grlca-inline-loader .grlca-loader-icon::after{inset:-8px}
.grlca-inline-loader .grlca-loader-text{font-size:12px}
.grlca-inline-loader .grlca-loader-bar{width:100px;height:2px}
