/* SecuBox Netifyd DPI Styles - Dark Theme */

:root {
	--netifyd-bg-primary: #0a0a0f;
	--netifyd-bg-secondary: #141419;
	--netifyd-bg-tertiary: #1e1e24;
	--netifyd-bg-elevated: rgba(255, 255, 255, 0.05);
	--netifyd-border: rgba(255, 255, 255, 0.08);
	--netifyd-border-hover: rgba(255, 255, 255, 0.15);
	--netifyd-text-primary: #fafafa;
	--netifyd-text-secondary: #a0a0b0;
	--netifyd-text-muted: #71717a;
	--netifyd-accent-blue: #3b82f6;
	--netifyd-accent-green: #10b981;
	--netifyd-accent-yellow: #f59e0b;
	--netifyd-accent-red: #ef4444;
	--netifyd-accent-purple: #8b5cf6;
	--netifyd-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

/* Override LuCI base styles for dark theme */
.secubox-page-wrapper {
	background: var(--netifyd-bg-primary) !important;
	color: var(--netifyd-text-primary) !important;
	min-height: 100vh;
}

.secubox-page-wrapper .cbi-map {
	background: transparent !important;
	color: var(--netifyd-text-primary) !important;
}

.secubox-page-wrapper .cbi-map h2,
.secubox-page-wrapper .cbi-map h3,
.secubox-page-wrapper .cbi-map h4 {
	color: var(--netifyd-text-primary) !important;
}

.secubox-page-wrapper .cbi-map-descr {
	color: var(--netifyd-text-secondary) !important;
}

.secubox-page-wrapper .cbi-section {
	background: var(--netifyd-bg-secondary) !important;
	border: 1px solid var(--netifyd-border) !important;
	border-radius: 12px !important;
	margin-bottom: 1.5rem !important;
	padding: 1.25rem !important;
}

.secubox-page-wrapper .cbi-section h3 {
	color: var(--netifyd-text-primary) !important;
	border-bottom: 1px solid var(--netifyd-border) !important;
	padding-bottom: 0.75rem !important;
	margin-bottom: 1rem !important;
}

.secubox-page-wrapper .cbi-section-node {
	background: transparent !important;
}

.secubox-page-wrapper .table,
.secubox-page-wrapper table {
	background: var(--netifyd-bg-tertiary) !important;
	color: var(--netifyd-text-primary) !important;
}

.secubox-page-wrapper .tr,
.secubox-page-wrapper tr {
	border-bottom: 1px solid var(--netifyd-border) !important;
}

.secubox-page-wrapper .tr:hover,
.secubox-page-wrapper tr:hover {
	background: var(--netifyd-bg-elevated) !important;
}

.secubox-page-wrapper .td,
.secubox-page-wrapper td,
.secubox-page-wrapper .th,
.secubox-page-wrapper th {
	color: var(--netifyd-text-primary) !important;
	border-color: var(--netifyd-border) !important;
}

.secubox-page-wrapper .alert-message,
.secubox-page-wrapper .alert-message.info,
.secubox-page-wrapper .alert-message.warning {
	background: var(--netifyd-bg-tertiary) !important;
	border: 1px solid var(--netifyd-border) !important;
	color: var(--netifyd-text-secondary) !important;
	border-radius: 8px !important;
}

.secubox-page-wrapper .text-muted,
.secubox-page-wrapper small {
	color: var(--netifyd-text-muted) !important;
}

/* Form elements */
.secubox-page-wrapper input[type="text"],
.secubox-page-wrapper input[type="password"],
.secubox-page-wrapper select,
.secubox-page-wrapper textarea,
.secubox-page-wrapper .cbi-input-text {
	background: var(--netifyd-bg-tertiary) !important;
	border: 1px solid var(--netifyd-border) !important;
	color: var(--netifyd-text-primary) !important;
	border-radius: 6px !important;
}

.secubox-page-wrapper input[type="text"]:focus,
.secubox-page-wrapper input[type="password"]:focus,
.secubox-page-wrapper select:focus,
.secubox-page-wrapper textarea:focus {
	border-color: var(--netifyd-accent-blue) !important;
	outline: none !important;
}

/* Buttons */
.secubox-page-wrapper .btn,
.secubox-page-wrapper button {
	background: var(--netifyd-bg-tertiary) !important;
	border: 1px solid var(--netifyd-border) !important;
	color: var(--netifyd-text-primary) !important;
	border-radius: 6px !important;
	transition: all 0.2s !important;
}

.secubox-page-wrapper .btn:hover,
.secubox-page-wrapper button:hover {
	background: var(--netifyd-bg-elevated) !important;
	border-color: var(--netifyd-border-hover) !important;
}

.secubox-page-wrapper .btn-primary,
.secubox-page-wrapper .cbi-button-action {
	background: var(--netifyd-gradient) !important;
	border: none !important;
	color: white !important;
}

.secubox-page-wrapper .btn-success {
	background: rgba(16, 185, 129, 0.2) !important;
	border-color: var(--netifyd-accent-green) !important;
	color: var(--netifyd-accent-green) !important;
}

.secubox-page-wrapper .btn-danger {
	background: rgba(239, 68, 68, 0.2) !important;
	border-color: var(--netifyd-accent-red) !important;
	color: var(--netifyd-accent-red) !important;
}

.secubox-page-wrapper .btn-secondary {
	background: var(--netifyd-bg-tertiary) !important;
	border-color: var(--netifyd-border) !important;
	color: var(--netifyd-text-secondary) !important;
}

/* Stat cards - override inline white backgrounds */
.secubox-page-wrapper .netifyd-stat-card,
.secubox-page-wrapper [style*="background: white"],
.secubox-page-wrapper [style*="background:#fff"],
.secubox-page-wrapper [style*="background: #fff"] {
	background: var(--netifyd-bg-secondary) !important;
	border: 1px solid var(--netifyd-border) !important;
	color: var(--netifyd-text-primary) !important;
}

/* Progress bars */
.netifyd-progress-bar {
	height: 20px;
	background: var(--netifyd-bg-tertiary) !important;
	border-radius: 4px;
	position: relative;
	overflow: hidden;
}

.netifyd-progress-fill {
	height: 100%;
	background: var(--netifyd-gradient);
	transition: width 0.3s ease;
}

.netifyd-progress-text {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	font-size: 0.8em;
	font-weight: bold;
	color: var(--netifyd-text-primary) !important;
}

/* Alerts */
.netifyd-alert-info {
	padding: 0.75rem 1.25rem;
	margin-bottom: 1rem;
	border-radius: 8px;
	background: rgba(59, 130, 246, 0.1) !important;
	border: 1px solid rgba(59, 130, 246, 0.3) !important;
	color: var(--netifyd-accent-blue) !important;
}

.netifyd-alert-warning {
	padding: 0.75rem 1.25rem;
	margin-bottom: 1rem;
	border-radius: 8px;
	background: rgba(245, 158, 11, 0.1) !important;
	border: 1px solid rgba(245, 158, 11, 0.3) !important;
	color: var(--netifyd-accent-yellow) !important;
}

.netifyd-grid-auto {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
}

@media (max-width: 768px) {
	.netifyd-grid-auto {
		grid-template-columns: 1fr;
	}
}

/* Service status badges */
.badge,
.badge-success,
.badge-danger,
.badge-warning,
.badge-info,
.badge-primary,
.badge-secondary {
	display: inline-block;
	padding: 0.25em 0.6em;
	font-size: 0.75em;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	white-space: nowrap;
	vertical-align: baseline;
	border-radius: 4px;
}

.badge-success {
	background: rgba(16, 185, 129, 0.2) !important;
	color: var(--netifyd-accent-green) !important;
}

.badge-danger {
	background: rgba(239, 68, 68, 0.2) !important;
	color: var(--netifyd-accent-red) !important;
}

.badge-warning {
	background: rgba(245, 158, 11, 0.2) !important;
	color: var(--netifyd-accent-yellow) !important;
}

.badge-info {
	background: rgba(6, 182, 212, 0.2) !important;
	color: #06b6d4 !important;
}

.badge-primary {
	background: rgba(102, 126, 234, 0.2) !important;
	color: #667eea !important;
}

.badge-secondary {
	background: var(--netifyd-bg-elevated) !important;
	color: var(--netifyd-text-secondary) !important;
}

/* Real-time indicator */
.netifyd-live-indicator {
	display: inline-block;
	width: 8px;
	height: 8px;
	background: var(--netifyd-accent-green);
	border-radius: 50%;
	animation: pulse 2s infinite;
	margin-right: 0.5rem;
}

@keyframes pulse {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: 0.5;
	}
}

/* Loading spinner */
.netifyd-spinner {
	display: inline-block;
	width: 1rem;
	height: 1rem;
	border: 2px solid var(--netifyd-border);
	border-left-color: var(--netifyd-accent-blue);
	border-radius: 50%;
	animation: spin 0.6s linear infinite;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

/* Override white/light backgrounds in interface cards */
.secubox-page-wrapper [style*="border: 1px solid #e5e7eb"],
.secubox-page-wrapper [style*="border:1px solid #e5e7eb"] {
	border-color: var(--netifyd-border) !important;
}

.secubox-page-wrapper [style*="color: #374151"],
.secubox-page-wrapper [style*="color:#374151"] {
	color: var(--netifyd-text-primary) !important;
}

.secubox-page-wrapper [style*="color: #6b7280"],
.secubox-page-wrapper [style*="color:#6b7280"] {
	color: var(--netifyd-text-secondary) !important;
}

.secubox-page-wrapper [style*="color: #9ca3af"],
.secubox-page-wrapper [style*="color:#9ca3af"] {
	color: var(--netifyd-text-muted) !important;
}

.secubox-page-wrapper [style*="background: #f3f4f6"],
.secubox-page-wrapper [style*="background:#f3f4f6"],
.secubox-page-wrapper [style*="background: #e5e7eb"],
.secubox-page-wrapper [style*="background:#e5e7eb"],
.secubox-page-wrapper [style*="background: #f9fafb"],
.secubox-page-wrapper [style*="background:#f9fafb"] {
	background: var(--netifyd-bg-tertiary) !important;
}

/* App navigation tabs */
.sb-app-nav a:hover {
	background: rgba(255, 255, 255, 0.08) !important;
	color: #e0e0e0 !important;
}

/* Scrollbar */
.secubox-page-wrapper ::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

.secubox-page-wrapper ::-webkit-scrollbar-track {
	background: var(--netifyd-bg-tertiary);
}

.secubox-page-wrapper ::-webkit-scrollbar-thumb {
	background: var(--netifyd-border);
	border-radius: 4px;
}

.secubox-page-wrapper ::-webkit-scrollbar-thumb:hover {
	background: var(--netifyd-border-hover);
}
