/* Webdev Widget Scoped Styles */
.xp-webdev-widget {
	--xp-bg: #0a0a0a;
	--xp-accent: #00e5c8;
	--xp-text: #ffffff;
	--xp-surface: #111111;
	--xp-muted: #6b7280;
	--xp-border: #1f1f1f;
	--xp-in-progress: #febc2e;
	
	background: var(--xp-bg);
	color: var(--xp-text);
	font-family: sans-serif;
	box-sizing: border-box;
	width: 100%;
}
.xp-webdev-widget * { box-sizing: border-box; }

/* Header */
.xp-webdev-widget .xp-header {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
}
.xp-webdev-widget .xp-header-icon {
	width: 44px;
	height: 44px;
	background: #0d2b27;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--xp-accent);
}
.xp-webdev-widget .xp-header-icon i,
.xp-webdev-widget .xp-header-icon svg { font-size: 20px; width: 20px; height: 20px; fill: currentColor; }
.xp-webdev-widget .xp-header-text { display: flex; flex-direction: column; gap: 4px; }
.xp-webdev-widget .xp-header-title { margin: 0; color: var(--xp-text); font-size: 18px; font-weight: 500; }
.xp-webdev-widget .xp-header-subtitle { margin: 0; color: var(--xp-muted); font-size: 13px; }

/* Tabs */
.xp-tabs {
	display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px;
}
.xp-tab-btn {
	background: transparent; color: var(--xp-muted); border: 1px solid var(--xp-border);
	padding: 6px 14px; border-radius: 20px; font-size: 12px; cursor: pointer; transition: 0.2s;
}
.xp-tab-btn:hover, .xp-tab-btn.active {
	background: #0d2b27; color: var(--xp-accent); border-color: #0f3d33;
}

/* Grid */
.xp-webdev-widget .xp-grid {
	display: grid; gap: 14px; grid-template-columns: repeat(3, 1fr); margin-bottom: 24px;
}
.xp-card-wrapper { display: block; }
.xp-card-wrapper.xp-hidden { display: none; }

/* Card */
.xp-webdev-widget .xp-card {
	background: var(--xp-surface); border: 0.5px solid var(--xp-border); border-radius: 8px;
	overflow: hidden; display: flex; flex-direction: column; text-decoration: none; transition: border-color 0.2s ease;
	height: 100%;
}
.xp-webdev-widget a.xp-card:hover, .xp-webdev-widget .xp-card:hover { border-color: var(--xp-accent); }

/* Layer 1: Chrome */
.xp-webdev-widget .xp-card-chrome {
	background: #161616; display: flex; align-items: center; padding: 8px 12px; gap: 12px;
}
.xp-webdev-widget .xp-chrome-dots { display: flex; gap: 5px; }
.xp-webdev-widget .xp-chrome-dots span { width: 7px; height: 7px; border-radius: 50%; display: block; }
.xp-webdev-widget .xp-dot-red { background: #ff5f57; }
.xp-webdev-widget .xp-dot-yellow { background: #febc2e; }
.xp-webdev-widget .xp-dot-green { background: #28c840; }
.xp-webdev-widget .xp-chrome-url {
	background: #1e1e1e; color: #4b5563; font-size: 10px; padding: 2px 10px; border-radius: 12px; flex-grow: 1; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Layer 2: Screen */
.xp-webdev-widget .xp-card-screen {
	height: 180px; background: #0f0f0f; position: relative; overflow: hidden; padding: 0;
}
.xp-iframe-wrapper { width: 100%; height: 100%; position: relative; overflow: hidden; }
.xp-iframe-wrapper iframe {
	width: 100%; height: 100%; border: none; position: relative; z-index: 2; pointer-events: none;
	/* Transform iframe to scale down web content to fit */
	width: 400%; height: 400%; transform: scale(0.25); transform-origin: top left;
}
.xp-iframe-wrapper .xp-fallback-img {
	position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; display: none;
}
.xp-loader {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 20px; height: 20px;
	border: 2px solid #333; border-top-color: var(--xp-accent); border-radius: 50%; animation: xp-spin 1s linear infinite; z-index: 0;
}
@keyframes xp-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }

.xp-static-img { width: 100%; height: 100%; object-fit: cover; }

/* Mockup CSS */
.xp-webdev-widget .xp-mockup { width: 100%; height: 100%; display: flex; flex-direction: column; }
.xp-webdev-widget .xp-mockup-nav { height: 14px; background: #1a1a1a; display: flex; align-items: center; justify-content: space-between; padding: 0 8px; }
.xp-webdev-widget .xp-mockup-logo { width: 12px; height: 6px; background: var(--xp-accent); border-radius: 2px; }
.xp-webdev-widget .xp-mockup-links { display: flex; gap: 4px; }
.xp-webdev-widget .xp-mockup-links span { width: 8px; height: 2px; background: #333; }
.xp-webdev-widget .xp-mockup-body { padding: 12px; flex-grow: 1; display: flex; flex-direction: column; gap: 6px; }
.xp-webdev-widget .xp-mockup-heading { width: 60%; height: 8px; background: #2a2a2a; border-radius: 2px; }
.xp-webdev-widget .xp-mockup-subheading { width: 40%; height: 6px; background: #222; border-radius: 2px; }
.xp-webdev-widget .xp-mockup-cta { width: 24px; height: 8px; background: var(--xp-accent); border-radius: 2px; margin-top: 4px; }
.xp-webdev-widget .xp-mockup-grid { display: flex; gap: 4px; margin-top: auto; }
.xp-webdev-widget .xp-mockup-grid div { flex: 1; height: 20px; background: #1a1a1a; border-radius: 2px; }
.xp-webdev-widget .xp-mockup-dashboard { flex-direction: row; }
.xp-webdev-widget .xp-mockup-sidebar { width: 20px; background: #161616; height: 100%; }
.xp-webdev-widget .xp-mockup-main { flex: 1; padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.xp-webdev-widget .xp-mockup-topbar { height: 8px; background: #1a1a1a; border-radius: 2px; }
.xp-webdev-widget .xp-mockup-cards { display: flex; gap: 6px; }
.xp-webdev-widget .xp-mockup-cards div { flex: 1; height: 24px; background: #222; border-radius: 2px; }
.xp-webdev-widget .xp-mockup-chart { flex: 1; background: #1a1a1a; border-radius: 2px; }

/* Layer 3: Info */
.xp-webdev-widget .xp-card-info { padding: 10px 12px; flex-grow: 1; display: flex; flex-direction: column; gap: 6px; }
.xp-webdev-widget .xp-card-title { color: var(--xp-text); font-size: 13px; font-weight: 500; }
.xp-webdev-widget .xp-card-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.xp-webdev-widget .xp-tag { font-size: 10px; padding: 2px 8px; border-radius: 20px; }
.xp-webdev-widget .xp-tag-cyan { background: #0d2b27; color: var(--xp-accent); border: 0.5px solid #0f3d33; }
.xp-webdev-widget .xp-tag-gray { background: #1a1a1a; color: var(--xp-muted); border: 0.5px solid #222; }

/* Layer 4: Footer */
.xp-webdev-widget .xp-card-footer { border-top: 0.5px solid #1a1a1a; padding: 8px 12px; display: flex; justify-content: space-between; align-items: center; }
.xp-webdev-widget .xp-footer-status { display: flex; align-items: center; gap: 6px; }
.xp-webdev-widget .xp-status-dot { width: 6px; height: 6px; border-radius: 50%; display: block; }
.xp-webdev-widget .xp-dot-live { background: var(--xp-accent); }
.xp-webdev-widget .xp-dot-progress { background: var(--xp-in-progress); }
.xp-webdev-widget .xp-dot-planned { background: #febc2e; }
.xp-webdev-widget .xp-status-text { color: var(--xp-muted); font-size: 11px; }
.xp-webdev-widget .xp-footer-action { font-size: 11px; display: flex; align-items: center; }
.xp-webdev-widget .xp-action-open { color: var(--xp-accent); display: flex; align-items: center; gap: 4px; text-decoration: none; }
.xp-webdev-widget .xp-action-soon { color: #febc2e; display: flex; align-items: center; gap: 4px; }

/* Placeholder */
.xp-webdev-widget .xp-placeholder-card { background: var(--xp-surface); border: 0.5px dashed var(--xp-border); justify-content: center; align-items: center; }
.xp-webdev-widget .xp-placeholder-card:hover { border-color: #333333; }
.xp-webdev-widget .xp-placeholder-content { display: flex; flex-direction: column; align-items: center; gap: 8px; color: #444; }
.xp-webdev-widget .xp-placeholder-content span { font-size: 12px; }

/* Bottom Bar */
.xp-webdev-widget .xp-bottom-bar { border-top: 0.5px solid #1a1a1a; padding-top: 1rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.xp-webdev-widget .xp-bottom-info { display: flex; align-items: center; gap: 6px; color: var(--xp-muted); font-size: 12px; }
.xp-webdev-widget .xp-bottom-btn { display: flex; align-items: center; gap: 6px; background: transparent; border: 0.5px solid #0f3d33; color: var(--xp-accent); border-radius: 8px; padding: 7px 14px; font-size: 13px; text-decoration: none; transition: background 0.2s; }
.xp-webdev-widget .xp-bottom-btn:hover { background: #0d2b27; }