/* assets/css/main.css */ :root { --primary-color: #3b82f6; /* A friendly blue */ --primary-color-hover: #2563eb; --secondary-color: #6b7280; /* A neutral gray */ --secondary-color-hover: #4b5563; --danger-color: #ef4444; /* A soft red */ --danger-color-hover: #dc2626; --background-color: #f9fafb; /* Very light gray for page backgrounds */ --container-bg-color: #ffffff; --text-color: #1f2937; --text-color-light: #6b7280; --border-color: #e5e7eb; --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; } body { font-family: var(--font-family); background-color: var(--background-color); color: var(--text-color); margin: 0; padding: 0; } .page-container { max-width: 800px; margin: 0 auto; padding: 24px; background-color: var(--container-bg-color); border-radius: 8px; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); margin-top: 24px; margin-bottom: 24px; } h1, h2, h3, h4, h5, h6 { color: var(--text-color); font-weight: 600; margin-top: 0; } h1 { font-size: 2rem; /* 32px */ margin-bottom: 1.5rem; /* 24px */ text-align: center; } h2 { font-size: 1.5rem; /* 24px */ margin-bottom: 1rem; /* 16px */ border-bottom: 1px solid var(--border-color); padding-bottom: 0.5rem; } h3 { font-size: 1.25rem; /* 20px */ margin-bottom: 0.75rem; /* 12px */ } p { line-height: 1.6; margin-bottom: 1rem; } /* --- Buttons --- */ .btn { display: inline-block; font-weight: 600; text-align: center; white-space: nowrap; vertical-align: middle; user-select: none; border: 1px solid transparent; padding: 0.75rem 1.5rem; font-size: 1rem; line-height: 1.5; border-radius: 0.375rem; cursor: pointer; transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } .btn:disabled { opacity: 0.65; cursor: not-allowed; } .btn-primary { color: #fff; background-color: var(--primary-color); border-color: var(--primary-color); } .btn-primary:hover { background-color: var(--primary-color-hover); border-color: var(--primary-color-hover); } .btn-secondary { color: #fff; background-color: var(--secondary-color); border-color: var(--secondary-color); } .btn-secondary:hover { background-color: var(--secondary-color-hover); border-color: var(--secondary-color-hover); } .btn-danger { color: #fff; background-color: var(--danger-color); border-color: var(--danger-color); } .btn-danger:hover { background-color: var(--danger-color-hover); border-color: var(--danger-color-hover); } .btn-sm { padding: 0.25rem 0.5rem; font-size: 0.875rem; border-radius: 0.2rem; } /* --- Forms --- */ .form-group { margin-bottom: 1rem; } .form-label { display: block; margin-bottom: 0.5rem; font-weight: 600; } .form-control { display: block; width: 100%; padding: 0.75rem 1rem; font-size: 1rem; line-height: 1.5; color: var(--text-color); background-color: #fff; background-clip: padding-box; border: 1px solid var(--border-color); border-radius: 0.375rem; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } .form-control:focus { outline: 0; border-color: var(--primary-color); box-shadow: 0 0 0 0.25rem rgb(59 130 246 / 25%); } .form-select { display: block; width: 100%; padding: 0.75rem 2.25rem 0.75rem 1rem; -moz-padding-start: calc(1rem - 3px); font-size: 1rem; font-weight: 400; line-height: 1.5; color: #212529; background-color: #fff; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 16px 12px; border: 1px solid var(--border-color); border-radius: 0.375rem; transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; -webkit-appearance: none; -moz-appearance: none; appearance: none; } /* --- Tables --- */ .table { width: 100%; margin-bottom: 1rem; color: var(--text-color); vertical-align: top; border-color: var(--border-color); border-collapse: collapse; } .table > :not(caption) > * > * { padding: 0.75rem 0.75rem; background-color: var(--container-bg-color); border-bottom-width: 1px; } .table > thead { vertical-align: bottom; } .table > thead > tr > th { text-align: left; font-weight: 600; color: var(--text-color); background-color: #f3f4f6; /* A bit darker than page background */ } .table-striped > tbody > tr:nth-of-type(odd) > * { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); } .table-hover > tbody > tr:hover > * { background-color: rgb(243 244 246 / 0.8); }