/* General Body Styles */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background-color: #f8f9fa; color: #212529; margin: 0; line-height: 1.6; } /* Container */ .container { max-width: 1140px; margin: 0 auto; padding: 2rem 1rem; } /* Header */ header.main-header { background-color: #ffffff; border-bottom: 1px solid #e9ecef; padding: 1rem 0; box-shadow: 0 2px 4px rgba(0,0,0,0.04); } header.main-header .container { display: flex; justify-content: space-between; align-items: center; padding-top: 0; padding-bottom: 0; } .logo { font-size: 1.75rem; font-weight: bold; color: #007bff; text-decoration: none; } .main-nav ul { list-style: none; margin: 0; padding: 0; display: flex; } .main-nav li { margin-left: 1.5rem; } .main-nav a { text-decoration: none; color: #495057; font-weight: 500; transition: color 0.2s ease-in-out; } .main-nav a:hover, .main-nav a.active { color: #007bff; } /* Hero Section */ .hero { background: linear-gradient(45deg, #007bff, #6610f2); color: #ffffff; text-align: center; padding: 6rem 1rem; } .hero h1 { font-size: 3.5rem; font-weight: 700; margin-bottom: 1rem; } .hero p { font-size: 1.25rem; max-width: 600px; margin: 0 auto 2rem auto; } /* Buttons */ .btn { display: inline-block; padding: 0.75rem 1.5rem; border-radius: 50px; text-decoration: none; font-weight: 500; transition: all 0.3s ease; border: none; cursor: pointer; } .btn-primary { background-color: #ffffff; color: #007bff; box-shadow: 0 4px 15px rgba(0, 123, 255, 0.2); } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 123, 255, 0.3); } .btn-secondary { border: 2px solid #ffffff; background-color: transparent; color: #ffffff; } .btn-secondary:hover { background-color: #ffffff; color: #007bff; } /* Admin Dashboard Specific Styles */ .dashboard-header { background-color: #fff; padding: 2rem; border-bottom: 1px solid #dee2e6; box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,.075); } .dashboard-header h1 { margin: 0; font-size: 2rem; } .analytics-cards { display: flex; gap: 1.5rem; margin-bottom: 2rem; flex-wrap: wrap; } .card { background-color: #fff; border-radius: 0.5rem; box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,.075); padding: 1.5rem; flex: 1; min-width: 220px; border-left: 5px solid #007bff; } .card h3 { margin-top: 0; font-size: 1rem; color: #6c757d; } .card .stat { font-size: 2.5rem; font-weight: bold; color: #343a40; } .user-management { background-color: #fff; padding: 2rem; border-radius: 0.5rem; box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,.075); } .user-management-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; } .user-management-header h2 { margin: 0; } .table-responsive { overflow-x: auto; } table { width: 100%; border-collapse: collapse; margin-top: 1rem; } th, td { padding: 1rem; text-align: left; border-bottom: 1px solid #dee2e6; } thead th { background-color: #f8f9fa; font-weight: 600; } tbody tr:hover { background-color: #f1f3f5; } .badge { display: inline-block; padding: 0.35em 0.65em; font-size: .75em; font-weight: 700; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: 0.25rem; } .badge-success { background-color: #28a745; } .badge-warning { background-color: #ffc107; color: #212529; } .badge-danger { background-color: #dc3545; } /* Modal Styles */ .modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 1000; /* Sit on top */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ } .modal-content { background-color: #fefefe; margin: 10% auto; padding: 2rem; border: 1px solid #888; width: 80%; max-width: 500px; border-radius: 0.5rem; box-shadow: 0 5px 15px rgba(0,0,0,0.3); } .modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #dee2e6; padding-bottom: 1rem; margin-bottom: 1rem; } .modal-header h2 { margin: 0; } .close-button { color: #aaa; float: right; font-size: 28px; font-weight: bold; cursor: pointer; } .close-button:hover, .close-button:focus { color: black; text-decoration: none; cursor: pointer; } .form-group { margin-bottom: 1rem; } .form-group label { display: block; margin-bottom: 0.5rem; font-weight: 500; } .form-group input, .form-group select { width: 100%; padding: 0.75rem; border: 1px solid #ced4da; border-radius: 0.25rem; } /* Login/Register Page Specifics */ .form-card { background-color: #fff; padding: 2.5rem; border-radius: 0.5rem; box-shadow: 0 0.25rem 0.75rem rgba(0,0,0,.075); max-width: 450px; margin: 2rem auto; } .button { display: block; width: 100%; padding: 0.85rem; border-radius: 0.25rem; background-color: #007bff; color: #ffffff; border: none; font-size: 1rem; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease-in-out; } .button:hover { background-color: #0069d9; } .text-center { text-align: center; margin-top: 1.5rem; } /* Flash Messages */ .message { padding: 1rem; margin-bottom: 1rem; border-radius: 0.25rem; border: 1px solid transparent; } .message.error { color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; } .message.success { color: #155724; background-color: #d4edda; border-color: #c3e6cb; } /* Post Section Styles */ .post-creation-section, .feed-section { background-color: #fff; padding: 2rem; border-radius: 0.5rem; box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,.075); margin-bottom: 2rem; } .post-creation-section h2, .feed-section h2 { margin-top: 0; margin-bottom: 1.5rem; font-size: 1.75rem; color: #343a40; } .post-card { border: 1px solid #e9ecef; border-radius: 0.5rem; padding: 1.5rem; margin-bottom: 1rem; background-color: #fefefe; } .post-card:last-child { margin-bottom: 0; } .post-author { font-size: 1rem; color: #495057; margin-bottom: 0.5rem; } .post-author strong { color: #007bff; } .post-date { font-size: 0.85rem; color: #6c757d; float: right; } .post-content { font-size: 1.1rem; line-height: 1.6; color: #212529; white-space: pre-wrap; /* Preserve whitespace and line breaks */ } textarea#post_content { width: 100%; padding: 0.75rem; border: 1px solid #ced4da; border-radius: 0.25rem; resize: vertical; /* Allow vertical resizing */ font-family: inherit; /* Inherit font from body */ } button[name="new_post"] { margin-top: 1rem; width: auto; padding: 0.75rem 2rem; border-radius: 0.25rem; background-color: #28a745; /* A green color for post button */ } button[name="new_post"]:hover { background-color: #218838; } .button-secondary { background-color: #6c757d; } .button-secondary:hover { background-color: #5a6268; }