/* Reset and Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } :root { --black: #000000; --white: #ffffff; --gray-50: #fafafa; --gray-100: #f5f5f5; --gray-200: #e5e5e5; --gray-300: #d4d4d4; --gray-400: #a3a3a3; --gray-500: #737373; --gray-600: #525252; --gray-700: #404040; --gray-800: #262626; --gray-900: #171717; --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: var(--gray-900); background-color: var(--white); min-height: 100vh; display: flex; flex-direction: column; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-weight: 600; line-height: 1.2; margin-bottom: 1rem; } h1 { font-size: 2.25rem; } h2 { font-size: 1.875rem; } h3 { font-size: 1.5rem; } h4 { font-size: 1.25rem; } p { margin-bottom: 1rem; } /* Navigation */ .navbar { background: var(--white); border-bottom: 1px solid var(--gray-200); padding: 0 1rem; position: sticky; top: 0; z-index: 100; } .nav-container { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; height: 4rem; } .nav-logo { font-size: 1.5rem; font-weight: 700; color: var(--black); text-decoration: none; } .nav-logo:hover { color: var(--gray-700); } .nav-links { display: flex; align-items: center; gap: 2rem; } .nav-link { color: var(--gray-600); text-decoration: none; font-weight: 500; transition: color 0.2s; } .nav-link:hover { color: var(--black); } .nav-button { background: var(--black); color: var(--white); border: none; padding: 0.5rem 1rem; border-radius: 4px; font-weight: 500; cursor: pointer; text-decoration: none; display: inline-block; transition: background-color 0.2s; } .nav-button:hover { background: var(--gray-800); } /* Main Content */ .main-content { flex: 1; max-width: 1200px; margin: 0 auto; padding: 2rem 1rem; width: 100%; } /* Messages */ .messages { margin-bottom: 2rem; } .alert { padding: 0.75rem 1rem; border-radius: 4px; margin-bottom: 1rem; border-left: 4px solid; } .alert-success { background: var(--gray-50); border-left-color: var(--gray-400); color: var(--gray-800); } .alert-error { background: var(--gray-100); border-left-color: var(--black); color: var(--black); } /* Cards */ .card { background: var(--white); border: 1px solid var(--gray-200); border-radius: 8px; padding: 1.5rem; box-shadow: var(--shadow-sm); margin-bottom: 1.5rem; } .card-header { border-bottom: 1px solid var(--gray-200); padding-bottom: 1rem; margin-bottom: 1rem; } .card-title { font-size: 1.25rem; font-weight: 600; margin-bottom: 0; } /* Forms */ .form { max-width: 400px; margin: 0 auto; } .form-group { margin-bottom: 1.5rem; } .form-label { display: block; font-weight: 500; margin-bottom: 0.5rem; color: var(--gray-700); } .form-input { width: 100%; padding: 0.75rem; border: 1px solid var(--gray-300); border-radius: 4px; font-size: 1rem; transition: border-color 0.2s, box-shadow 0.2s; } .form-input:focus { outline: none; border-color: var(--black); box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1); } .form-textarea { resize: vertical; min-height: 120px; } /* Buttons */ .btn { display: inline-block; padding: 0.75rem 1.5rem; border: none; border-radius: 4px; font-weight: 500; text-align: center; text-decoration: none; cursor: pointer; transition: all 0.2s; font-size: 1rem; } .btn-primary { background: var(--black); color: var(--white); } .btn-primary:hover { background: var(--gray-800); } .btn-secondary { background: var(--white); color: var(--black); border: 1px solid var(--gray-300); } .btn-secondary:hover { background: var(--gray-50); } .btn-full { width: 100%; } /* Tables */ .table { width: 100%; border-collapse: collapse; margin-top: 1rem; } .table th, .table td { padding: 0.75rem; text-align: left; border-bottom: 1px solid var(--gray-200); } .table th { font-weight: 600; background: var(--gray-50); } /* Stats */ .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; } .stat-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: 8px; padding: 1.5rem; text-align: center; box-shadow: var(--shadow-sm); } .stat-value { font-size: 2rem; font-weight: 700; color: var(--black); margin-bottom: 0.5rem; } .stat-label { color: var(--gray-600); font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; } /* Loading */ .loading { display: inline-block; width: 1rem; height: 1rem; border: 2px solid var(--gray-300); border-top: 2px solid var(--black); border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Footer */ .footer { background: var(--gray-50); border-top: 1px solid var(--gray-200); padding: 2rem 1rem; margin-top: auto; } .footer-container { max-width: 1200px; margin: 0 auto; text-align: center; color: var(--gray-600); font-size: 0.875rem; } /* Hero Section */ .hero { text-align: center; padding: 4rem 0; background: var(--gray-50); margin: -2rem -1rem 2rem -1rem; } .hero-title { font-size: 3rem; font-weight: 700; margin-bottom: 1rem; color: var(--black); } .hero-subtitle { font-size: 1.25rem; color: var(--gray-600); margin-bottom: 2rem; max-width: 600px; margin-left: auto; margin-right: auto; } .hero-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; } /* Responsive */ @media (max-width: 768px) { .nav-links { gap: 1rem; } .hero-title { font-size: 2rem; } .hero-subtitle { font-size: 1rem; } .hero-buttons { flex-direction: column; align-items: center; } .btn { min-width: 200px; } .stats-grid { grid-template-columns: 1fr; } }