/** * SecuBox CDN Cache Dashboard Styles * Copyright (C) 2025 CyberMind.fr * SPDX-License-Identifier: Apache-2.0 * Version: 0.3.0 */ :root { --cdn-primary: #06b6d4; --cdn-primary-dark: #0891b2; --cdn-primary-light: #22d3ee; --cdn-success: #22c55e; --cdn-warning: #f59e0b; --cdn-danger: #ef4444; --cdn-bg: #0f172a; --cdn-bg-card: #1e293b; --cdn-border: #334155; --cdn-text: #f1f5f9; --cdn-text-muted: #94a3b8; --cdn-text-dim: #64748b; } .cdn-cache-dashboard { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif; } /* Header */ .cdn-header { background: linear-gradient(135deg, var(--cdn-primary-dark), var(--cdn-primary), var(--cdn-primary-light)); color: white; padding: 30px; border-radius: 16px; margin-bottom: 24px; box-shadow: 0 10px 40px rgba(6, 182, 212, 0.2); } .cdn-header h2 { margin: 0 0 8px 0; font-size: 28px; font-weight: 700; } .cdn-header p { margin: 0; opacity: 0.9; } /* Status Badge */ .cdn-status-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 20px; font-size: 13px; font-weight: 600; margin-top: 12px; } .cdn-status-badge.running { background: rgba(34, 197, 94, 0.2); color: var(--cdn-success); } .cdn-status-badge.stopped { background: rgba(239, 68, 68, 0.2); color: var(--cdn-danger); } /* Cards */ .cdn-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; margin-bottom: 24px; } .cdn-card { background: var(--cdn-bg-card); border-radius: 12px; padding: 20px; border: 1px solid var(--cdn-border); transition: transform 0.2s, box-shadow 0.2s; } .cdn-card:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); } .cdn-card-icon { font-size: 28px; margin-bottom: 12px; } .cdn-card-value { font-size: 32px; font-weight: 700; color: var(--cdn-text); margin-bottom: 4px; font-family: 'JetBrains Mono', 'Fira Code', monospace; } .cdn-card-label { font-size: 13px; color: var(--cdn-text-muted); } .cdn-card-sub { font-size: 12px; color: var(--cdn-text-dim); margin-top: 8px; } /* Sections */ .cdn-section { background: var(--cdn-bg-card); border-radius: 12px; padding: 24px; border: 1px solid var(--cdn-border); margin-bottom: 24px; } .cdn-section-title { font-size: 16px; font-weight: 600; color: var(--cdn-text); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; } /* Progress Bars */ .cdn-progress-bar { background: var(--cdn-border); border-radius: 8px; height: 12px; overflow: hidden; } .cdn-progress-fill { height: 100%; border-radius: 8px; transition: width 0.3s ease; } .cdn-progress-fill.low { background: linear-gradient(90deg, var(--cdn-success), #4ade80); } .cdn-progress-fill.medium { background: linear-gradient(90deg, #eab308, #facc15); } .cdn-progress-fill.high { background: linear-gradient(90deg, #f97316, #fb923c); } .cdn-progress-fill.critical { background: linear-gradient(90deg, var(--cdn-danger), #f87171); } /* Tables */ .cdn-table { width: 100%; border-collapse: collapse; } .cdn-table th { text-align: left; padding: 12px; color: var(--cdn-text-muted); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 1px solid var(--cdn-border); } .cdn-table td { padding: 12px; border-bottom: 1px solid var(--cdn-border); color: var(--cdn-text); font-size: 14px; } .cdn-table tr:hover { background: rgba(6, 182, 212, 0.05); } /* Buttons */ .cdn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 20px; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; border: none; transition: all 0.2s; } .cdn-btn-primary { background: var(--cdn-primary); color: white; } .cdn-btn-primary:hover { background: var(--cdn-primary-dark); transform: translateY(-1px); } .cdn-btn-danger { background: var(--cdn-danger); color: white; } .cdn-btn-danger:hover { background: #dc2626; } .cdn-btn-sm { padding: 6px 12px; font-size: 12px; } /* Charts */ .cdn-chart { height: 200px; display: flex; align-items: flex-end; gap: 4px; padding: 20px 0; } .cdn-chart-bar { flex: 1; background: linear-gradient(180deg, var(--cdn-primary), var(--cdn-primary-dark)); border-radius: 4px 4px 0 0; min-height: 4px; transition: height 0.3s ease; position: relative; } .cdn-chart-bar:hover { background: linear-gradient(180deg, var(--cdn-primary-light), var(--cdn-primary)); } /* Badges */ .cdn-badge { display: inline-block; padding: 4px 10px; border-radius: 6px; font-size: 12px; font-weight: 500; } .cdn-badge-primary { background: rgba(6, 182, 212, 0.15); color: var(--cdn-primary); } .cdn-badge-success { background: rgba(34, 197, 94, 0.15); color: var(--cdn-success); } .cdn-badge-warning { background: rgba(245, 158, 11, 0.15); color: var(--cdn-warning); } /* Savings highlight */ .cdn-savings { text-align: center; padding: 20px; background: linear-gradient(135deg, rgba(34, 197, 94, 0.1), rgba(16, 185, 129, 0.05)); border-radius: 12px; border: 1px solid rgba(34, 197, 94, 0.2); } .cdn-savings-value { font-size: 42px; font-weight: 800; color: var(--cdn-success); font-family: 'JetBrains Mono', monospace; } .cdn-savings-label { font-size: 14px; color: var(--cdn-text-muted); margin-top: 4px; } /* Responsive */ @media (max-width: 768px) { .cdn-grid { grid-template-columns: 1fr; } .cdn-header { padding: 20px; } .cdn-header h2 { font-size: 22px; } .cdn-card-value { font-size: 24px; } }