.phone-input-group{display:flex;gap:8px;align-items:center}
.phone-input-group .phone-flag{display:inline-flex;align-items:center;justify-content:center;width:28px}
.phone-input-group select.phone-country{width:110px}
.phone-input-group .phone-type-select{width:120px}
.phone-input-group input[type="tel"]{flex:1}
.phone-input-group .btn{flex:0 0 auto}
/* avatar initial (fallback when no uploaded photo) */
.avatar-initial{width:120px;height:120px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#0d6efd;color:#fff;font-size:48px;font-weight:700}
/* smaller avatar variant for sidebar / compact spots */
.avatar-initial.avatar-sm{width:72px;height:72px;font-size:28px}
/* Phone input group inside Edit modal */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
 :root{--primary:#0d6efd;--primary-600:#0b5ed7;--accent:#b8860b;--bg:#f7f7fb;--muted-text:#5b5f72}
body{font-family:'Poppins',sans-serif;background:var(--bg);color:#222;}
.premium-header{background:linear-gradient(90deg,var(--primary),var(--primary-600));}
.premium-sidebar{background:#fff;border-right:1px solid #e9eef1;min-height:100vh;}
.premium-sidebar .nav-link{color:#4b5563;padding:12px 20px;border-left:4px solid transparent;font-weight:600;}
.premium-sidebar .nav-link.active,.premium-sidebar .nav-link:hover{background:#f5f6fb;color:var(--primary);border-left-color:var(--primary);}
.premium-card{border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,0.03);}
/* legacy theme utilities removed - use app-specific utility classes below */
.shadow-sm{box-shadow:0 4px 18px rgba(3,10,18,0.06)!important;}
.page-title{color:var(--primary);} 
/* legacy text-teal removed - use .text-primary-app */

/* New unique theme utility classes (rename from generic names) */
.btn-primary-app{background:var(--primary);color:#fff;border:none}
.btn-primary-app:hover{background:var(--primary-600)}
.btn-outline-primary-app{color:var(--primary);border:1px solid var(--primary);background:transparent}
.btn-outline-primary-app:hover{background:rgba(43,45,138,0.06)}
.bg-primary-app{background:var(--primary) !important;color:#fff !important}
.text-primary-app{color:var(--primary) !important}

/* Old class aliases removed. Use .btn-primary-app, .btn-outline-primary-app, .bg-primary-app, .text-primary-app */

/* Dashboard stat cards */
.stats-row{margin-bottom:18px}
.stat-card{border-radius:12px;color:#fff;padding:28px 22px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 24px rgba(43,45,138,0.08)}
.stat-card .stat-number{font-size:2.5rem;font-weight:700}
.stat-card .stat-label{opacity:0.9}
.stat-1{background:linear-gradient(90deg,#7c3aed,#ec4899)}
.stat-2{background:linear-gradient(90deg,#ff8eb6,#ff6b8a)}
.stat-3{background:linear-gradient(90deg,#3bd5ff,#3b82f6)}
.stat-4{background:linear-gradient(90deg,#34f2b6,#10b981)}

@media (max-width:767px){
	.stat-card{padding:18px}
	.stat-card .stat-number{font-size:1.8rem}
}

/* Auth pages: attractive centered card with gradient background */
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, #f5f7ff 0%, #eef6ff 40%, #fdf7fb 100%);}
.auth-page .card{border-radius:14px;box-shadow:0 20px 60px rgba(11,35,80,0.12);overflow:hidden;border:none}
.auth-hero{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.auth-hero .logo{width:56px;height:56px;border-radius:12px;background:linear-gradient(135deg,#0d6efd,#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:20px}
.auth-hero h4{margin:0;font-weight:700;color:#0f172a}
.auth-page .card-body{padding:30px}
.form-control:focus{box-shadow:0 6px 18px rgba(13,110,253,0.12);border-color:#0d6efd}
.auth-note{color:var(--muted-text);font-size:0.95rem;margin-bottom:12px}
.btn-primary-app{background:linear-gradient(90deg,#0d6efd,#7c3aed);box-shadow:0 8px 20px rgba(115,99,242,0.12);border-radius:10px;padding:10px 18px}
.btn-primary-app:hover{transform:translateY(-2px)}
.auth-small-link{color:#6b7280;text-decoration:none}
.auth-small-link:hover{color:var(--primary)}
.input-with-icon{position:relative}
.input-with-icon input{padding-left:44px}
.input-with-icon .icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#6b7280;font-size:16px}

/* small responsive tweak */
@media (max-width:480px){ .auth-page .card-body{padding:18px} }

/* Finance page helpers */
.btn-income{background:#0f766e;color:#fff;border:none;padding:12px 18px;border-radius:6px}
.btn-income:hover{background:#115e59}
.btn-expense{background:#dc2626;color:#fff;border:none;padding:12px 18px;border-radius:6px}
.btn-expense:hover{background:#b91c1c}
.filter-card{border-radius:8px;border:1px solid rgba(0,0,0,0.04);background:#fff;padding:18px}
.panel-header-green{background:#0f766e;color:#fff;padding:12px;border-radius:6px 6px 0 0}
.panel-header-red{background:#dc2626;color:#fff;padding:12px;border-radius:6px 6px 0 0}
.recent-list .list-group-item{border:0;padding:18px 16px}
.recent-list .amount{font-weight:700}

/* Meeting card header variants */
.panel-header-blue{background:linear-gradient(90deg,#0d6efd,#0b5ed7);color:#fff;padding:14px 18px;border-radius:8px 8px 0 0;font-size:1.25rem}
.panel-header-cyan{background:linear-gradient(90deg,#11cdef,#17b0d7);color:#fff;padding:14px 18px;border-radius:8px 8px 0 0;font-size:1.25rem}
.meeting-card{border-radius:10px;overflow:hidden;border:1px solid rgba(0,0,0,0.04);margin-bottom:18px;background:#fff}
.meeting-card .card-body{padding:18px}
.meeting-actions .btn{margin-right:10px}

/* Cancelled / neutral header variant */
.panel-header-gray{background:#6b7280;color:#fff;padding:14px 18px;border-radius:8px 8px 0 0;font-size:1.25rem}

/* FullCalendar tweaks */
.fc .fc-toolbar-title{font-size:1.25rem;font-weight:700;color:var(--primary);}
/* Booking card styles */
.booking-card {
	border-radius: 8px;
	box-shadow: 0 6px 18px rgba(16,24,40,0.06);
	background: #fff;
	padding: 16px;
	border: 1px solid rgba(15,23,42,0.04);
}
.booking-card .meta { font-size: 0.9rem; color: #6b7280 }
.booking-badge {
	display: inline-block;
	padding: 6px 10px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.85rem;
}
.booking-badge.internal { background: #e9f6ff; color: #0b63d6; }
.booking-badge.external { background: #f0fdf4; color: #047857; }
.booking-actions .btn { margin-left: 6px }
.booking-card:hover{transform:translateY(-4px);transition:all 180ms ease}

/* Filter card polish */
.card .form-label.small{font-size:0.8rem;color:#374151}
.card .form-control, .card .form-select{border-radius:8px}
.card .input-group .form-control{border-right:0}
.card .input-group .btn{border-radius:0 8px 8px 0}

/* Pagination: center and size */
.pagination{justify-content:center}
.pagination .page-link{border-radius:6px;padding:6px 10px}

/* Edit modal small result text */
#edit_check_result .alert{margin-bottom:0;padding:6px 10px;font-size:0.9rem}
.fc .fc-button{background:#fff;border:1px solid var(--primary);color:var(--primary);border-radius:6px;padding:8px 14px}
.fc .fc-button:hover{background:rgba(13,110,253,0.06);color:var(--primary)}
.fc .fc-daygrid-event .fc-event-title{font-weight:600}

/* Calendar header and column labels: use slate/darker color (override blue) */
.fc .fc-toolbar-title{color:#1f2937 !important}
.fc .fc-col-header-cell-cushion{color:#1f2937 !important;font-weight:600}
.fc .fc-daygrid-day-top .fc-daygrid-day-number, .fc .fc-daygrid-day-number, .fc .fc-daygrid-day-top a{color:#1f2937 !important}
/* view buttons (month/week/day) text color */
.fc .fc-button{color:var(--primary) !important}
/* Active / pressed / selected button: blue bg, white text */
.fc .fc-button[aria-pressed="true"], .fc .fc-button.fc-button-active, .fc .fc-button:active, .fc .fc-button:focus{
	background:var(--primary) !important;
	color:#fff !important;
	border-color:var(--primary) !important;
	box-shadow:none !important;
}
/* ensure icons inside buttons inherit the color */
.fc .fc-button svg, .fc .fc-button i{color:inherit}

/* Stronger overrides for FullCalendar nav and segmented buttons to ensure blue/white styling */
.fc .fc-toolbar .fc-button,
.fc .fc-toolbar .fc-button:not([aria-pressed="true"]){
	background:#fff !important;
	color:var(--primary) !important;
	border:1px solid var(--primary) !important;
	box-shadow:none !important;
}
.fc .fc-toolbar .fc-button[aria-pressed="true"],
.fc .fc-toolbar .fc-button.fc-button-active{
	background:var(--primary) !important;
	color:#fff !important;
	border:1px solid var(--primary) !important;
}
/* Specific nav button selectors (Prev/Next/Today) */
.fc .fc-prev-button, .fc .fc-next-button, .fc .fc-today-button{
	background:#fff !important;
	color:var(--primary) !important;
	border:1px solid var(--primary) !important;
}
.fc .fc-prev-button[aria-pressed="true"], .fc .fc-next-button[aria-pressed="true"], .fc .fc-today-button[aria-pressed="true"]{
	background:var(--primary) !important;
	color:#fff !important;
	border-color:var(--primary) !important;
}

/* Event status classes removed - only type-based coloring (internal/external) is used now */

/* Sidebar tiny styles */
#calendarToday p{margin:0 0 6px 0}

@media (max-width:991px){
	#calendar{margin-bottom:18px}
}

/* Booking type colors */
.type-internal{background:#0b6f6e !important;border-color:#0b6f6e !important;color:#fff !important}
.type-external{background:var(--accent) !important;border-color:var(--accent) !important;color:#fff !important}

/* small badge for legend when using type classes on badges */
.legend-badge{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:8px;vertical-align:middle}

/* Members page specific styles */
.members-header{display:flex;align-items:center;gap:18px;padding:12px 8px}
.members-header h2{font-size:1.75rem;color:#0f172a;font-weight:700}
.search-members{max-width:520px}
.search-members .form-control{border-radius:8px 6px 6px 8px;padding:12px}
.add-member-btn{padding:12px 26px;border-radius:10px;font-weight:600}
.table-members{border-radius:10px;overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,0.04);box-shadow:0 12px 30px rgba(2,6,23,0.06)}
.table-members thead th{border-bottom:0;padding:18px 16px}
.table-members tbody td{padding:16px}
.role-badge{border-radius:999px;padding:6px 12px;font-weight:700;font-size:0.85rem}
.badge-admin{background:#ef4444;color:#fff}
.badge-member{background:#6b7280;color:#fff}
.btn-view{background:#0ee6ff;color:#03303a;border:none;border-radius:8px;padding:8px 12px}
.btn-edit{background:#ffd54d;color:#3b3226;border:none;border-radius:8px;padding:8px 12px}
.btn-delete{background:#ef4444;color:#fff;border:none;border-radius:8px;padding:8px 12px}
.btn-view:hover{opacity:0.92}
.btn-edit:hover{opacity:0.92}
.btn-delete:hover{opacity:0.92}
.role-badge {
    padding: 6px 14px;
    border-radius: 20px;
    font-weight: 600;
    font-size: 14px;
    color: #fff;
    display: inline-block;
}

/* Default (fallback) */
.role-default { background: #6c757d; }

/* Custom role colors */
.role-member { background-color: #6c757d !important; }     /* Grey */
.role-admin { background-color: #dc3545 !important; }      /* Red */
.role-president { background-color: #007bff !important; }  /* Blue */
.role-manager { background-color: #6f42c1 !important; }    /* Purple */
.role-secretary { background-color: #fd7e14 !important; }  /* Orange */
.role-treasurer { background-color: #17a2b8 !important; }  /* Teal */
.role-default { background-color: #6c757d !important; }    /* Fallback */

.meeting-card {
    background: #fff;
    border-radius: 16px;
}

.meeting-card-header {
    background: linear-gradient(90deg, #007bff, #005ecb);
    border-radius: 16px 16px 0 0;
}

.meeting-card-body p {
    font-size: 15px;
}

.meeting-card-body i {
    color: #4d4d4d !important;
}

.meeting-card .btn {
    border-radius: 8px;
    padding: 6px 14px;
}

.btn-info {
    background-color: #00bcd4 !important;
    border: none;
}

.btn-success {
    background-color: #28a745 !important;
}

.meeting-card-header h5 {
    font-size: 18px;
}



@media (max-width:767px){
	.members-header{flex-direction:column;align-items:stretch}
	.members-header .ms-auto{align-self:flex-end}
	.search-members{width:100%}
	.add-member-btn{width:100%}
}

/* -----------------------------------------
   MOBILE SIDEBAR (OFFCANVAS) IMPROVEMENTS
------------------------------------------*/
@media (max-width: 768px) {

  /* Reduce sidebar width slightly */
  #mobileSidebar {
    width: 260px !important;
  }

  /* Profile section */
  #mobileSidebarBody .profile-section {
    text-align: center;
    padding: 20px 10px 10px;
  }

  #mobileSidebarBody .profile-section img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    margin-bottom: 8px;
  }

  #mobileSidebarBody .profile-section h6 {
    margin: 0;
    font-weight: 600;
    font-size: 15px;
  }

  #mobileSidebarBody .profile-section small {
    color: #777;
    font-size: 12px;
  }

  /* Sidebar menu items */
  #mobileSidebarBody .nav-link {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    font-size: 14px;
    border-radius: 6px;
    margin-bottom: 3px;
  }

  #mobileSidebarBody .nav-link i {
    font-size: 16px;
    width: 24px;
    text-align: center;
    margin-right: 8px;
  }

  /* Hover / active */
  #mobileSidebarBody .nav-link:hover {
    background: #f2f4f7;
  }

  #mobileSidebarBody .active {
    background: #e9f2ff;
    color: #0d6efd !important;
  }

  /* Divider */
  #mobileSidebarBody hr {
    margin: 8px 0 12px;
  }
}

.avatar-initial {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #007bff;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 26px;
    margin: 0 auto 10px;
}

