* { box-sizing: border-box; margin: 0; padding: 0; } :root { --color-bg: #f7f6f2; --color-surface: #ffffff; --color-surface-offset: #f3f0ec; --color-divider: #dcd9d5; --color-text: #28251d; --color-text-muted: #7a7974; --color-primary: #01696f; --color-primary-hover: #0c4e54; --radius-sm: 0.375rem; --radius-md: 0.5rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-6: 1.5rem; --space-8: 2rem; --font-body: 'Inter', 'Segoe UI', sans-serif; } html, body, #root { height: 100%; font-family: var(--font-body); color: var(--color-text); background: var(--color-bg); } .app { display: grid; grid-template-columns: 220px 1fr; height: 100%; } .sidebar { background: var(--color-surface); border-right: 1px solid var(--color-divider); padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); } .sidebar-title { font-weight: 700; font-size: 1rem; margin-bottom: var(--space-4); } .nav-item { padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); cursor: pointer; transition: background 0.15s; font-size: 0.9rem; } .nav-item:hover { background: var(--color-surface-offset); } .nav-item.active { background: var(--color-primary); color: #fff; } .main { padding: var(--space-6); overflow: auto; } .header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-6); } .page-title { font-size: 1.25rem; font-weight: 600; } .card { background: var(--color-surface); border: 1px solid var(--color-divider); border-radius: var(--radius-md); padding: var(--space-4); } .table { width: 100%; border-collapse: collapse; font-size: 0.9rem; } .table th, .table td { text-align: left; padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--color-divider); } .table th { font-weight: 600; color: var(--color-text-muted); } .btn { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border-radius: var(--radius-sm); border: 1px solid var(--color-divider); background: var(--color-surface); cursor: pointer; font-size: 0.9rem; transition: background 0.15s, border-color 0.15s; } .btn:hover { background: var(--color-surface-offset); } .btn-primary { background: var(--color-primary); color: #fff; border-color: var(--color-primary); } .btn-primary:hover { background: var(--color-primary-hover); } .empty { color: var(--color-text-muted); padding: var(--space-8); text-align: center; } .actions { display: flex; gap: var(--space-2); flex-wrap: wrap; } .status { display: inline-flex; align-items: center; padding: 0.15rem 0.5rem; border-radius: 999px; font-size: 0.8rem; font-weight: 600; } .status-active { background: #d9efe2; color: #216c43; } .status-failed { background: #f8d7da; color: #8a1f2d; } .status-inactive { background: #ececec; color: #555; } .status-pending { background: #fff3cd; color: #8a6d1f; } .alert { margin-bottom: var(--space-4); padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm); background: #f8d7da; color: #8a1f2d; border: 1px solid #f1b8c0; }