/* PARTEM-X BOS Storefront — Standalone Manager Page
 * Wraps the same tab content used inside the Core dashboard, but as
 * its own sleek, premium, web-app-style page with a vertical sidebar.
 * Colours fall back to the Core's own brand palette but are overridden
 * live by --ptx-* custom properties printed per-business by
 * PTXSF_Render_Admin::print_theme_vars() — the exact same variables
 * and values the Core dashboard shell itself uses — so a color-scheme
 * change made in the Core (or by the business owner) is reflected here
 * too, even though this page lives outside that shell.
 */

.ptxsf-manager-app {
	--ptx-purple-900: #1e1240;
	--ptx-purple-700: #3b1878;
	--ptx-purple-600: #4c1fb0;
	--ptx-indigo-600: #4338ca;
	--ptx-accent: #8b5cf6;
	--ptx-accent-light: #c4b5fd;
	--ptx-gold: #f5c451;
	--ptx-bg: #f5f6fb;
	--ptx-card: #ffffff;
	--ptx-border: #e6e7f0;
	--ptx-text: #1f2130;
	--ptx-muted: #6b7089;
	--ptx-radius: 14px;

	max-width: 1280px;
	margin: 24px auto 64px;
	padding: 0 20px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--ptx-text);
	box-sizing: border-box;
}
.ptxsf-manager-app * { box-sizing: border-box; }

/* ---------------- Sticky, premium top bar ---------------- */
.ptxsf-manager-topbar {
	position: sticky; top: 12px; z-index: 40;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	flex-wrap: wrap;
	background: var(--ptx-topbar-bg, linear-gradient(135deg, var(--ptx-purple-900), var(--ptx-purple-700) 60%, var(--ptx-indigo-600)));
	color: var(--ptx-sidebar-text, #fff);
	border-radius: 20px;
	padding: 16px 22px;
	margin-bottom: 16px;
	box-shadow: 0 20px 45px -20px rgba(30, 18, 64, .55), 0 1px 0 rgba(255,255,255,.08) inset;
}
.ptxsf-manager-topbar-simple { position: static; }

.ptxsf-manager-brand { display: flex; align-items: center; gap: 12px; }
.ptxsf-manager-brand-mark {
	width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
	background: linear-gradient(135deg, var(--ptx-accent), var(--ptx-gold));
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 20px -6px rgba(139, 92, 246, .6);
}
.ptxsf-manager-brand-mark .dashicons { color: #1e1240; }
.ptxsf-manager-brand-title { font-weight: 800; font-size: .95rem; letter-spacing: -.01em; }
.ptxsf-manager-brand-sub { font-size: .7rem; opacity: .8; display: flex; align-items: center; gap: 6px; }
.ptxsf-manager-brand-sub .ptxsf-status-pill { font-size: .65rem; padding: 2px 8px; }

.ptxsf-manager-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ptxsf-manager-topbar .ptxsf-btn-ghost { color: inherit; background: rgba(255,255,255,.14); }
.ptxsf-manager-topbar .ptxsf-btn-ghost:hover { background: rgba(255,255,255,.24); }
.ptxsf-manager-topbar .ptxsf-btn-primary {
	background: var(--ptx-btn-color, linear-gradient(135deg, var(--ptx-gold), #f4a53e));
	color: #241202; font-weight: 800;
	box-shadow: 0 10px 22px -8px rgba(245, 196, 81, .6);
}

/* ---------------- Mobile menu toggle (hidden on desktop) ---------------- */
.ptxsf-sidebar-toggle-btn {
	display: none;
	align-items: center; gap: 8px;
	width: 100%;
	margin: 0 0 16px;
	padding: 12px 16px;
	border-radius: 14px;
	border: 1px solid var(--ptx-border);
	background: var(--ptx-card);
	color: var(--ptx-text);
	font-weight: 700; font-size: .82rem;
	cursor: pointer;
	box-shadow: 0 8px 20px -14px rgba(30, 18, 64, .3);
}
.ptxsf-sidebar-toggle-btn .dashicons { color: var(--ptx-accent); }

/* ---------------- Body layout: sidebar + main ---------------- */
.ptxsf-manager-body { display: flex; align-items: flex-start; gap: 22px; position: relative; }

.ptxsf-manager-sidebar {
	width: 232px; flex-shrink: 0;
	background: var(--ptx-card);
	border: 1px solid var(--ptx-border);
	border-radius: 18px;
	overflow: hidden;
	position: sticky; top: 100px;
	box-shadow: 0 8px 24px -18px rgba(30, 18, 64, .35);
}
.ptxsf-manager-sidebar-head {
	display: flex; align-items: center; gap: 8px;
	padding: 14px 16px;
	font-weight: 800; font-size: .74rem; letter-spacing: .03em; text-transform: uppercase;
	color: var(--ptx-muted);
	border-bottom: 1px solid var(--ptx-border);
}
.ptxsf-manager-sidebar-head .dashicons { color: var(--ptx-accent); }
.ptxsf-sidebar-close { display: none; align-items: center; gap: 4px; margin-left: auto; background: rgba(220,38,38,.08); border: 1px solid rgba(220,38,38,.25); border-radius: 999px; padding: 5px 12px; font-size: .74rem; font-weight: 700; line-height: 1; cursor: pointer; color: #dc2626; }

.ptxsf-vsubmenu { display: flex; flex-direction: column; padding: 8px; gap: 2px; }
.ptxsf-manager-app .ptxsf-vsubmenu-item {
	text-align: left;
	width: 100%;
	border: none; border-bottom: none !important;
	background: none;
	border-radius: 12px;
	padding: 11px 14px;
	font-weight: 600; font-size: .83rem;
	opacity: .65;
	cursor: pointer;
	transition: all .15s;
}
.ptxsf-manager-app .ptxsf-vsubmenu-item:hover { opacity: 1; background: #f4f2fb; }
.ptxsf-manager-app .ptxsf-vsubmenu-item.is-active {
	opacity: 1;
	background: linear-gradient(135deg, var(--ptx-accent), var(--ptx-indigo-600));
	color: #fff;
	box-shadow: 0 8px 18px -8px rgba(139, 92, 246, .55);
}

.ptxsf-manager-backdrop { display: none; }

.ptxsf-manager-main { flex: 1; min-width: 0; }
.ptxsf-manager-content { animation: ptxsf-manager-fade .2s ease; }
@keyframes ptxsf-manager-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }

/* Panels within the manager page pick up a touch more premium polish
   than the same panels inside the Core dashboard's tighter chrome. */
.ptxsf-manager-app .ptxsf-panel { border-radius: 18px; }
.ptxsf-manager-app .ptxsf-stat-card { border-radius: 16px; }

/* ---------------- Responsive: tablet ---------------- */
@media (max-width: 1000px) {
	.ptxsf-manager-sidebar { width: 196px; }
}

/* ---------------- Responsive: mobile — sidebar becomes a one-tap drawer ---------------- */
@media (max-width: 820px) {
	.ptxsf-manager-app { margin-top: 12px; padding: 0 14px; }
	.ptxsf-manager-topbar { position: static; border-radius: 16px; padding: 14px 16px; }
	.ptxsf-manager-brand-title { font-size: .95rem; }
	.ptxsf-manager-actions { width: 100%; justify-content: space-between; }
	.ptxsf-manager-actions .ptxsf-btn { flex: 1; text-align: center; padding: 10px 12px; font-size: .82rem; }

	.ptxsf-sidebar-toggle-btn { display: flex; }

	.ptxsf-manager-body { display: block; }

	.ptxsf-manager-sidebar {
		position: fixed; top: 0; left: 0; bottom: 0;
		width: 82%; max-width: 320px;
		border-radius: 0 20px 20px 0;
		transform: translateX(-105%);
		transition: transform .25s ease;
		z-index: 1001;
		overflow-y: auto;
	}
	.ptxsf-manager-sidebar.is-open { transform: translateX(0); box-shadow: 0 0 48px rgba(0,0,0,.35); }
	.ptxsf-sidebar-close { display: flex; }

	.ptxsf-manager-backdrop {
		display: block; position: fixed; inset: 0;
		background: rgba(15, 12, 30, .45);
		z-index: 1000;
		opacity: 0; pointer-events: none;
		transition: opacity .2s ease;
	}
	.ptxsf-manager-backdrop.is-open { opacity: 1; pointer-events: auto; }

	.ptxsf-manager-main { width: 100%; }

	.ptxsf-manager-app .ptxsf-form-grid { grid-template-columns: 1fr; }
	.ptxsf-manager-app .ptxsf-span-2 { grid-column: span 1; }
	.ptxsf-manager-app .ptxsf-grid-4 { grid-template-columns: repeat(2, 1fr); }
	.ptxsf-manager-app .ptxsf-template-grid { grid-template-columns: 1fr; }
}
