/* =========================================================
   Nuvago Account Manager — front-end styles
   Brand palette borrowed from the site's existing dashboard:
   deep blue #173E97 / #0F2C6A, accent gold #FFD54A
   ========================================================= */

:root{
	--nuvago-navy: #173E97;
	--nuvago-navy-dark: #0F2C6A;
	--nuvago-navy-darker: #1B2F83;
	--nuvago-gold: #FFD54A;
	--nuvago-bg: #F5F7FB;
	--nuvago-text-muted: #6B7280;
	--nuvago-border: #E5E7EB;
	--nuvago-radius: 16px;
	--nuvago-radius-lg: 22px;
}

/* -------------------- Shared form styles -------------------- */

.nuvago-form{
	max-width:420px;
	background:#fff;
	border-radius:var(--nuvago-radius-lg);
	padding:32px;
	box-shadow:0 15px 40px rgba(15,44,106,.08);
}

.nuvago-field{ margin-bottom:20px; }
.nuvago-field label{
	display:block;
	font-weight:600;
	color:#374151;
	margin-bottom:8px;
	font-size:14px;
}
.nuvago-field input[type="text"],
.nuvago-field input[type="email"],
.nuvago-field input[type="password"],
.nuvago-field input[type="tel"]{
	width:100%;
	min-height:50px;
	border:1px solid var(--nuvago-border);
	border-radius:12px;
	padding:0 16px;
	font-size:15px;
	transition:.25s;
}
.nuvago-field input:focus{
	outline:none;
	border-color:var(--nuvago-navy);
	box-shadow:0 0 0 4px rgba(23,62,151,.12);
}
.nuvago-field input:disabled{ background:#F9FAFB; color:#9CA3AF; }
.nuvago-field-inline label{ display:flex; align-items:center; gap:8px; font-weight:500; }
.nuvago-hint{ display:block; font-size:12px; color:var(--nuvago-text-muted); margin-top:6px; }
.nuvago-hp-field{ position:absolute !important; left:-9999px !important; }

.nuvago-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:none;
	border-radius:12px;
	padding:14px 26px;
	font-weight:700;
	font-size:15px;
	cursor:pointer;
	text-decoration:none;
	transition:.25s;
}
.nuvago-btn-primary{
	background:var(--nuvago-navy);
	color:#fff;
	width:100%;
	box-shadow:0 12px 25px rgba(23,62,151,.28);
}
.nuvago-btn-primary:hover{ background:var(--nuvago-navy-dark); transform:translateY(-2px); color:#fff; }
.nuvago-btn-small{ padding:8px 16px; font-size:13px; background:var(--nuvago-navy); color:#fff; }
.nuvago-btn-small:hover{ background:var(--nuvago-navy-dark); color:#fff; }

.nuvago-form-links{ text-align:center; margin-top:18px; font-size:14px; color:var(--nuvago-text-muted); }
.nuvago-form-links a{ color:var(--nuvago-navy); font-weight:600; text-decoration:none; }
.nuvago-form-links a:hover{ text-decoration:underline; }

.nuvago-notice{
	border-radius:12px;
	padding:14px 18px;
	margin-bottom:20px;
	font-weight:500;
	font-size:14px;
}
.nuvago-notice-success{ background:#ECFDF5; color:#065F46; }
.nuvago-notice-error{ background:#FEF2F2; color:#991B1B; }

/* password strength meter, injected by script.js */
.nuvago-strength-meter{ height:5px; border-radius:5px; margin-top:8px; background:#E5E7EB; overflow:hidden; }
.nuvago-strength-meter span{ display:block; height:100%; width:0; transition:.3s; }
.nuvago-strength-weak span{ width:33%; background:#EF4444; }
.nuvago-strength-medium span{ width:66%; background:#F59E0B; }
.nuvago-strength-strong span{ width:100%; background:#10B981; }

/* -------------------- Account dropdown (header) -------------------- */

.nuvago-account{ position:relative; display:inline-block; z-index:9999; }
.nuvago-account-toggle{
	display:flex; align-items:center; gap:10px;
	border:none; background:#fff; cursor:pointer;
	padding:8px 16px; border-radius:12px;
	box-shadow:0 8px 20px rgba(0,0,0,.08);
	transition:.3s;
}
.nuvago-account-toggle:hover{ box-shadow:0 12px 28px rgba(0,0,0,.12); }
.nuvago-account-toggle img{ border-radius:50%; }
.nuvago-name{ color:var(--nuvago-navy-darker); font-weight:600; font-size:15px; }
.nuvago-arrow{ font-size:11px; transition:.3s; }
.nuvago-account.is-open .nuvago-arrow{ transform:rotate(180deg); }

.nuvago-menu{
	position:absolute; right:0; top:120%; width:260px;
	background:#fff; border-radius:15px;
	box-shadow:0 20px 45px rgba(0,0,0,.15);
	display:none; overflow:hidden;
}
.nuvago-menu.show{ display:block; }
.nuvago-menu a{
	display:flex; align-items:center; gap:12px;
	padding:14px 18px; text-decoration:none; color:#333; transition:.2s;
}
.nuvago-menu a:hover{ background:#F5F7FC; color:var(--nuvago-navy-darker); }
.nuvago-menu hr{ margin:0; border:none; border-top:1px solid #eee; }
.nuvago-login-link{ font-weight:600; color:var(--nuvago-navy); text-decoration:none; }

/* Kill the default browser focus outline (often an ugly black rectangle)
   on interactive elements, and replace it with a soft brand-colored ring
   that still meets accessibility needs. */
.nuvago-account-toggle,
.nuvago-menu a,
.nuvago-sidebar-menu a,
.nuvago-mobile-tabbar a,
.nuvago-chip,
.nuvago-btn,
.nuvago-tab-link{
	outline: none;
	-webkit-tap-highlight-color: transparent;
}
.nuvago-account-toggle:focus-visible,
.nuvago-menu a:focus-visible,
.nuvago-sidebar-menu a:focus-visible,
.nuvago-mobile-tabbar a:focus-visible,
.nuvago-chip:focus-visible,
.nuvago-btn:focus-visible,
.nuvago-tab-link:focus-visible{
	box-shadow: 0 0 0 3px rgba(23,62,151,.3);
}

/* Fallback spacing for the forced template wrapper (see
   templates/dashboard-page-wrapper.php) in case the theme's header/footer
   don't already provide a content container around it. */
.nuvago-dashboard-page-wrap{ padding:30px 20px; background:var(--nuvago-bg); }

/* -------------------- Dashboard app shell -------------------- */

.nuvago-dashboard{
	display:grid;
	grid-template-columns:280px 1fr;
	gap:28px;
	max-width:1200px;
	margin:0 auto;
	padding:12px 0 40px;
}

.nuvago-dashboard-sidebar{
	background:linear-gradient(180deg,var(--nuvago-navy-dark),var(--nuvago-navy));
	border-radius:var(--nuvago-radius-lg);
	overflow:hidden;
	box-shadow:0 18px 40px rgba(0,0,0,.15);
	align-self:start;
	position:sticky;
	top:20px;
}

.nuvago-sidebar-profile{
	text-align:center; padding:28px 20px;
	border-bottom:1px solid rgba(255,255,255,.08);
}
.nuvago-sidebar-profile img{
	border-radius:50%; border:4px solid rgba(255,255,255,.18); margin-bottom:12px;
}
.nuvago-sidebar-profile h4{ color:#fff; font-size:17px; font-weight:700; margin:0 0 4px; }
.nuvago-sidebar-profile p{ color:rgba(255,255,255,.6); font-size:13px; margin:0; }

.nuvago-sidebar-menu ul{ list-style:none; margin:0; padding:16px 12px; }
.nuvago-sidebar-menu li{ margin-bottom:6px; }
.nuvago-sidebar-menu li a{
	display:flex; align-items:center; gap:12px;
	color:#DFE8FF; padding:13px 16px; border-radius:12px;
	text-decoration:none; font-weight:500; font-size:15px; transition:.25s;
}
.nuvago-sidebar-menu li a:hover{ background:rgba(255,255,255,.1); color:#fff; transform:translateX(4px); }
.nuvago-sidebar-menu li.active > a{
	background:var(--nuvago-gold); color:#173E97; font-weight:700;
	box-shadow:0 10px 22px rgba(255,213,74,.35);
}
.nuvago-sidebar-logout{ padding:12px 12px 20px; border-top:1px solid rgba(255,255,255,.08); }
.nuvago-sidebar-logout a{
	display:flex; align-items:center; gap:12px; color:#FFD54A;
	font-weight:600; padding:12px 16px; text-decoration:none;
}

.nuvago-dashboard-content{ min-width:0; }
.nuvago-dashboard-content{ transition: opacity .15s ease; }
.nuvago-dashboard-content.is-loading{ opacity:.45; pointer-events:none; }
.nuvago-content-title{ font-size:24px; font-weight:700; color:var(--nuvago-navy-darker); margin:4px 0 24px; }

/* Stat cards */
.nuvago-stats-grid{
	display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:28px;
}
.nuvago-stat-card{
	background:#fff; border-radius:var(--nuvago-radius); padding:24px;
	box-shadow:0 12px 30px rgba(15,35,95,.08);
	position:relative; overflow:hidden;
}
.nuvago-stat-card::before{
	content:""; position:absolute; width:120px; height:120px; border-radius:50%;
	background:rgba(23,62,151,.05); right:-35px; top:-35px;
}
.nuvago-stat-title{ font-size:12px; text-transform:uppercase; letter-spacing:.6px; color:var(--nuvago-text-muted); margin-bottom:8px; }
.nuvago-stat-value{ font-size:32px; font-weight:700; color:var(--nuvago-navy); }

/* Panels */
.nuvago-panel{
	background:#fff; border-radius:var(--nuvago-radius-lg); overflow:hidden;
	box-shadow:0 12px 35px rgba(15,35,95,.08); margin-bottom:26px;
	animation:nuvagoFadeUp .4s ease;
}
.nuvago-panel-heading{
	background:linear-gradient(135deg,var(--nuvago-navy),var(--nuvago-navy-dark));
	color:#fff; padding:18px 24px; font-weight:700; font-size:16px;
}
.nuvago-panel-body{ padding:24px; }

@keyframes nuvagoFadeUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:translateY(0);} }

/* Tables */
.nuvago-table-wrap{ overflow-x:auto; }
.nuvago-table{ width:100%; border-collapse:separate; border-spacing:0 10px; }
.nuvago-table thead th{
	background:var(--nuvago-bg); color:var(--nuvago-navy);
	text-align:left; padding:16px; font-size:13px; text-transform:uppercase; letter-spacing:.4px;
}
.nuvago-table tbody tr{ background:#fff; box-shadow:0 6px 16px rgba(0,0,0,.04); transition:.2s; }
.nuvago-table tbody tr:hover{ transform:scale(1.008); }
.nuvago-table td{ padding:16px; vertical-align:middle; font-size:14px; }
.nuvago-table tfoot td{ padding:14px 16px; }

/* Chips (booking type filters) */
.nuvago-chip-row{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.nuvago-chip{
	background:#fff; color:var(--nuvago-text-muted); font-weight:600; font-size:14px;
	padding:10px 18px; border-radius:50px; text-decoration:none;
	box-shadow:0 5px 15px rgba(0,0,0,.05); transition:.25s;
}
.nuvago-chip:hover{ background:var(--nuvago-navy); color:#fff; }
.nuvago-chip.is-active{ background:var(--nuvago-navy); color:#fff; box-shadow:0 10px 22px rgba(23,62,151,.25); }

/* Badges (type) & status pills */
.nuvago-badge{
	display:inline-block; padding:5px 12px; border-radius:40px; font-size:12px; font-weight:700;
	background:#EEF2FF; color:var(--nuvago-navy);
}
.nuvago-badge-hotel{ background:#FEF3C7; color:#92400E; }
.nuvago-badge-flight{ background:#DBEAFE; color:#1E40AF; }
.nuvago-badge-transfer{ background:#E0E7FF; color:#3730A3; }
.nuvago-badge-tour{ background:#D1FAE5; color:#065F46; }

.nuvago-status{ display:inline-block; padding:5px 12px; border-radius:40px; font-size:12px; font-weight:700; }
.nuvago-status-success{ background:#D1FAE5; color:#065F46; }
.nuvago-status-info{ background:#DBEAFE; color:#1E40AF; }
.nuvago-status-warning{ background:#FEF3C7; color:#92400E; }
.nuvago-status-danger{ background:#FEE2E2; color:#991B1B; }
.nuvago-status-muted{ background:#F3F4F6; color:#6B7280; }

.nuvago-empty-state{ color:var(--nuvago-text-muted); padding:30px 0; text-align:center; }
.nuvago-hint-block{ font-size:12px; color:#9CA3AF; margin-top:10px; }
.nuvago-text-muted{ color:var(--nuvago-text-muted); font-size:13px; }
.nuvago-plain-list{ margin:0; padding-left:20px; color:#374151; font-size:14px; line-height:1.9; }

.nuvago-customer-cell{ display:flex; align-items:center; gap:12px; }
.nuvago-customer-cell img{ border-radius:50%; }

.nuvago-actions-cell{ display:flex; flex-direction:column; gap:8px; }
.nuvago-actions-cell form{ margin:0; }

/* Wishlist grid */
.nuvago-wishlist-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.nuvago-wishlist-card{
	background:#fff; border-radius:var(--nuvago-radius); overflow:hidden;
	box-shadow:0 12px 30px rgba(0,0,0,.08); transition:.3s;
}
.nuvago-wishlist-card:hover{ transform:translateY(-6px); }
.nuvago-wishlist-thumb{ height:150px; background-size:cover; background-position:center; }
.nuvago-wishlist-body{ padding:18px; }
.nuvago-wishlist-body h4{ margin:10px 0 6px; font-size:16px; color:var(--nuvago-navy-darker); }
.nuvago-wishlist-price{ font-weight:700; color:var(--nuvago-navy); margin-bottom:12px; }

/* Mobile app-style bottom tab bar: hidden on desktop */
.nuvago-mobile-tabbar{ display:none; }

/* =========================================================
   RESPONSIVE — collapse to an app-like single column with a
   fixed bottom tab bar, similar to a native mobile app
   ========================================================= */
@media (max-width: 900px){
	.nuvago-dashboard{ grid-template-columns:1fr; padding-bottom:90px; }
	.nuvago-dashboard-sidebar{ display:none; } /* replaced by bottom tab bar */
	.nuvago-stats-grid{ grid-template-columns:repeat(2,1fr); }
	.nuvago-wishlist-grid{ grid-template-columns:repeat(2,1fr); }

	.nuvago-mobile-tabbar{
		display:flex; justify-content:space-around; align-items:center;
		position:fixed; left:0; right:0; bottom:0; z-index:9999;
		background:#fff; padding:8px 4px calc(8px + env(safe-area-inset-bottom));
		box-shadow:0 -8px 24px rgba(0,0,0,.08);
	}
	.nuvago-mobile-tabbar a{
		display:flex; flex-direction:column; align-items:center; gap:2px;
		text-decoration:none; color:#9CA3AF; font-size:11px; flex:1;
	}
	.nuvago-mobile-tabbar a span{ font-size:18px; }
	.nuvago-mobile-tabbar a.active{ color:var(--nuvago-navy); font-weight:700; }
}

@media (max-width: 560px){
	.nuvago-stats-grid{ grid-template-columns:1fr 1fr; }
	.nuvago-wishlist-grid{ grid-template-columns:1fr; }
	.nuvago-form{ padding:24px; }
}
