/* Linux BenchTools - Main Styles (Monokai Dark Theme) */ :root { /* Couleurs Monokai */ --bg-primary: #1e1e1e; --bg-secondary: #2d2d2d; --bg-tertiary: #3e3e3e; --text-primary: #f8f8f2; --text-secondary: #cccccc; --text-muted: #75715e; /* Couleurs fonctionnelles */ --color-success: #a6e22e; --color-warning: #fd971f; --color-danger: #f92672; --color-info: #66d9ef; --color-purple: #ae81ff; --color-yellow: #e6db74; /* Spacing */ --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; /* Border radius */ --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; } /* Reset & Base */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Consolas', 'Monaco', 'Courier New', monospace; background-color: var(--bg-primary); color: var(--text-primary); line-height: 1.6; font-size: 14px; } a { color: var(--color-info); text-decoration: none; } a:hover { text-decoration: underline; } /* Layout */ .container { max-width: 1400px; margin: 0 auto; padding: var(--spacing-lg); } .container-fluid { width: 100%; padding: var(--spacing-lg); } /* Header */ .header { background-color: var(--bg-secondary); padding: var(--spacing-lg); margin-bottom: var(--spacing-xl); border-bottom: 2px solid var(--color-success); } .header h1 { color: var(--color-success); font-size: 2rem; margin-bottom: var(--spacing-sm); } .header p { color: var(--text-secondary); font-size: 0.9rem; } /* Navigation */ .nav { display: flex; gap: var(--spacing-md); margin-top: var(--spacing-md); } .nav-link { padding: var(--spacing-sm) var(--spacing-md); background-color: var(--bg-tertiary); border-radius: var(--radius-sm); color: var(--text-primary); transition: all 0.2s; } .nav-link:hover { background-color: var(--color-success); color: var(--bg-primary); text-decoration: none; } .nav-link.active { background-color: var(--color-success); color: var(--bg-primary); } /* Cards */ .card { background-color: var(--bg-secondary); border-radius: var(--radius-md); padding: var(--spacing-lg); margin-bottom: var(--spacing-lg); border: 1px solid var(--bg-tertiary); } .card-header { font-size: 1.2rem; color: var(--color-info); margin-bottom: var(--spacing-md); padding-bottom: var(--spacing-sm); border-bottom: 1px solid var(--bg-tertiary); } .card-body { color: var(--text-primary); } /* Stats Cards */ .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-md); margin-bottom: var(--spacing-xl); } .stat-card { background-color: var(--bg-secondary); padding: var(--spacing-lg); border-radius: var(--radius-md); border-left: 4px solid var(--color-success); } .stat-label { color: var(--text-secondary); font-size: 0.85rem; text-transform: uppercase; margin-bottom: var(--spacing-xs); } .stat-value { color: var(--color-success); font-size: 2rem; font-weight: bold; } .stat-unit { color: var(--text-muted); font-size: 0.9rem; margin-left: var(--spacing-xs); } /* Tables */ .table-wrapper { overflow-x: auto; } table { width: 100%; border-collapse: collapse; background-color: var(--bg-secondary); border-radius: var(--radius-md); overflow: hidden; } thead { background-color: var(--bg-tertiary); } th { padding: var(--spacing-md); text-align: left; color: var(--color-info); font-weight: 600; text-transform: uppercase; font-size: 0.85rem; } td { padding: var(--spacing-md); border-top: 1px solid var(--bg-tertiary); color: var(--text-primary); } tbody tr { transition: background-color 0.2s; } tbody tr:hover { background-color: var(--bg-tertiary); } /* Badges */ .badge { display: inline-block; padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--radius-sm); font-size: 0.75rem; font-weight: bold; text-transform: uppercase; } .badge-success { background-color: var(--color-success); color: var(--bg-primary); } .badge-warning { background-color: var(--color-warning); color: var(--bg-primary); } .badge-danger { background-color: var(--color-danger); color: var(--text-primary); } .badge-info { background-color: var(--color-info); color: var(--bg-primary); } /* Score badges */ .score-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 50px; padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--radius-sm); font-weight: bold; font-size: 1rem; } .score-high { background-color: var(--color-success); color: var(--bg-primary); } .score-medium { background-color: var(--color-warning); color: var(--bg-primary); } .score-low { background-color: var(--color-danger); color: var(--text-primary); } /* Buttons */ .btn { display: inline-block; padding: var(--spacing-sm) var(--spacing-md); border: none; border-radius: var(--radius-sm); font-family: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer; transition: all 0.2s; text-align: center; } .btn-primary { background-color: var(--color-success); color: var(--bg-primary); } .btn-primary:hover { background-color: #8bc922; text-decoration: none; } .btn-secondary { background-color: var(--bg-tertiary); color: var(--text-primary); } .btn-secondary:hover { background-color: var(--bg-secondary); } .btn-danger { background-color: var(--color-danger); color: var(--text-primary); } .btn-danger:hover { background-color: #d81857; } .btn-sm { padding: var(--spacing-xs) var(--spacing-sm); font-size: 0.8rem; } /* Forms */ .form-group { margin-bottom: var(--spacing-md); } .form-label { display: block; color: var(--text-secondary); margin-bottom: var(--spacing-xs); font-size: 0.9rem; } .form-control { width: 100%; padding: var(--spacing-sm); background-color: var(--bg-tertiary); border: 1px solid var(--bg-tertiary); border-radius: var(--radius-sm); color: var(--text-primary); font-family: inherit; font-size: 0.9rem; } .form-control:focus { outline: none; border-color: var(--color-success); } textarea.form-control { resize: vertical; min-height: 100px; } /* Code block */ .code-block { background-color: var(--bg-tertiary); padding: var(--spacing-md); border-radius: var(--radius-sm); border-left: 4px solid var(--color-success); overflow-x: auto; font-family: 'Consolas', 'Monaco', monospace; font-size: 0.85rem; color: var(--color-yellow); position: relative; } .code-block code { color: var(--color-yellow); } .copy-btn { position: absolute; top: var(--spacing-sm); right: var(--spacing-sm); padding: var(--spacing-xs) var(--spacing-sm); background-color: var(--bg-secondary); border: 1px solid var(--bg-tertiary); color: var(--text-secondary); border-radius: var(--radius-sm); cursor: pointer; font-size: 0.75rem; } .copy-btn:hover { background-color: var(--color-success); color: var(--bg-primary); } /* Grid */ .grid { display: grid; gap: var(--spacing-md); } .grid-2 { grid-template-columns: repeat(2, 1fr); } .grid-3 { grid-template-columns: repeat(3, 1fr); } .grid-4 { grid-template-columns: repeat(4, 1fr); } /* Responsive */ @media (max-width: 768px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } .stats-grid { grid-template-columns: 1fr; } } /* Loading */ .loading { text-align: center; padding: var(--spacing-xl); color: var(--text-secondary); } .loading::after { content: '...'; animation: loading 1.5s infinite; } @keyframes loading { 0%, 20% { content: '.'; } 40% { content: '..'; } 60%, 100% { content: '...'; } } /* Error */ .error { background-color: var(--color-danger); color: var(--text-primary); padding: var(--spacing-md); border-radius: var(--radius-sm); margin-bottom: var(--spacing-md); } /* Empty state */ .empty-state { text-align: center; padding: var(--spacing-xl); color: var(--text-muted); } .empty-state-icon { font-size: 3rem; margin-bottom: var(--spacing-md); opacity: 0.5; } /* Footer */ .footer { margin-top: var(--spacing-xl); padding: var(--spacing-lg); text-align: center; color: var(--text-muted); font-size: 0.85rem; border-top: 1px solid var(--bg-tertiary); }