/* Fresh & Vibrant Style for Announcement List */ :root { --mint-green: #A8E6CF; --pale-yellow: #FFD3B6; --coral-pink: #FFAAA5; --sky-blue: #BDE4F4; --clean-white: #FFFFFF; --bright-orange: #FF8C69; /* Emphasis for buttons/key info */ --lemon-yellow: #FFFACD; --text-dark: #424242; --text-medium: #616161; /* Slightly darker medium for better contrast */ --text-light: #888888; /* Adjusted light text */ --font-title: 'Poppins', sans-serif; --font-body: 'Nunito Sans', sans-serif; --card-shadow: 0 5px 18px rgba(0, 0, 0, 0.07); --card-hover-shadow: 0 8px 25px rgba(0, 0, 0, 0.12); --border-radius-main: 16px; /* Slightly larger radius for a softer look */ --border-radius-small: 10px; } /* Apply base font and background to body (likely in base.css) */ body { font-family: var(--font-body); background-color: #fcfdfe; /* Very light off-white, almost white */ color: var(--text-dark); line-height: 1.65; } .announcement-container { padding: 25px 30px; max-width: 960px; margin: 25px auto; background-color: var(--clean-white); border-radius: var(--border-radius-main); /* Optional: Subtle gradient background for the container itself */ /* background-image: linear-gradient(to bottom right, #f0f9ff, #ffffff); */ } .page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; padding-bottom: 20px; border-bottom: 1px solid #eef2f5; /* Softer border */ } .page-header h1 { font-family: var(--font-title); font-size: 2.2rem; font-weight: 700; color: var(--text-dark); margin: 0; display: flex; align-items: center; } .page-icon { /* Icon for page title */ color: var(--coral-pink); margin-right: 12px; font-size: 1.8rem; } /* Optional: Style for a "Create New" button if you add one */ .btn-fresh-create { background-color: var(--mint-green); color: #3a7c68; /* Darker mint for text */ border: none; padding: 10px 20px; border-radius: 25px; font-family: var(--font-body); font-weight: 600; text-decoration: none; transition: all 0.3s ease; font-size: 0.9rem; box-shadow: 0 2px 8px rgba(168, 230, 207, 0.4); } .btn-fresh-create:hover { background-color: #97e0c6; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(168, 230, 207, 0.5); } .btn-fresh-create i { margin-right: 8px; } .announcement-list { margin-top: 20px; display: grid; gap: 25px; /* Spacing between announcement items */ } .announcement-item { background-color: var(--clean-white); border-radius: var(--border-radius-main); box-shadow: var(--card-shadow); padding: 25px 30px; position: relative; /* For pin-badge */ transition: transform 0.25s ease-out, box-shadow 0.25s ease-out; overflow: hidden; /* If using pseudo-elements for borders */ } .announcement-item:hover { transform: translateY(-5px) scale(1.01); box-shadow: var(--card-hover-shadow); } .announcement-item.pinned { /* Use a top border or a more distinct background */ border-top: 4px solid var(--mint-green); background-color: #f6fffb; /* Light mint */ } .pin-badge { position: absolute; top: 0px; right: 0px; background: linear-gradient(135deg, var(--mint-green), #8fdcc3); color: var(--clean-white); padding: 6px 15px 6px 20px; border-radius: 0 0 0 var(--border-radius-main); /* Creative corner */ font-size: 0.8rem; font-weight: 600; font-family: var(--font-body); box-shadow: -2px 2px 8px rgba(168, 230, 207, 0.3); } .pin-badge i { margin-right: 6px; font-size: 0.75rem; } .announcement-header { display: flex; justify-content: space-between; align-items: flex-start; /* Align date to top if title wraps */ margin-bottom: 10px; } .announcement-header h3 { margin: 0; font-size: 1.4rem; /* Slightly larger title */ font-family: var(--font-title); font-weight: 600; line-height: 1.3; margin-right: 15px; /* Space between title and date */ } .announcement-header h3 a { color: var(--text-dark); text-decoration: none; transition: color 0.2s ease; } .announcement-header h3 a:hover { color: var(--coral-pink); } .date { color: var(--text-light); font-size: 0.85rem; font-weight: 400; white-space: nowrap; /* Prevent date from wrapping */ padding-top: 3px; /* Align better with h3 */ } .announcement-preview { margin: 15px 0; color: var(--text-medium); line-height: 1.7; font-size: 0.95rem; letter-spacing: 0.1px; } .announcement-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; padding-top: 15px; border-top: 1px solid #f0f4f7; /* Lighter separator */ } .publisher { color: var(--text-light); font-size: 0.85rem; display: flex; align-items: center; } .publisher i { margin-right: 6px; color: var(--sky-blue); } .read-more { color: var(--bright-orange); text-decoration: none; font-weight: 600; font-size: 0.9rem; font-family: var(--font-body); display: inline-flex; /* Allows icon alignment and hover effects */ align-items: center; padding: 6px 12px; border-radius: 20px; background-color: transparent; transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease; } .read-more:hover { background-color: var(--bright-orange); color: var(--clean-white); transform: translateX(3px); } .read-more i { margin-left: 6px; transition: transform 0.2s ease-in-out; } /* .read-more:hover i { transform: translateX(4px); } */ /* Handled by transform on .read-more now */ /* Pagination Styles (copied and adapted from previous for consistency) */ .pagination-container { margin-top: 40px; display: flex; justify-content: center; } .pagination { display: flex; list-style: none; padding-left: 0; } .pagination .page-item .page-link { color: var(--coral-pink); background-color: var(--clean-white); border: 1px solid var(--pale-yellow); margin: 0 5px; /* Slightly more spacing */ border-radius: 50%; width: 40px; /* Slightly larger */ height: 40px; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 0.95rem; font-family: var(--font-body); transition: all 0.25s ease-in-out; box-shadow: 0 1px 3px rgba(0,0,0,0.05); } .pagination .page-item .page-link:hover { background-color: var(--pale-yellow); color: var(--coral-pink); border-color: var(--coral-pink); text-decoration: none; transform: translateY(-2px); box-shadow: 0 3px 8px rgba(255, 211, 182, 0.5); } .pagination .page-item.active .page-link { background-color: var(--coral-pink); border-color: var(--coral-pink); color: var(--clean-white); box-shadow: 0 4px 10px rgba(255, 170, 165, 0.6); } .pagination .page-item.disabled .page-link { color: #cccccc; background-color: #f9f9f9; border-color: #eeeeee; pointer-events: none; box-shadow: none; } .no-records { text-align: center; padding: 60px 30px; background-color: #fffaf8; /* Very light coral/yellow tint */ border-radius: var(--border-radius-main); color: var(--text-medium); margin-top: 20px; box-shadow: var(--card-shadow); } .no-records-icon { width: 60px; height: 60px; margin-bottom: 20px; opacity: 0.9; } /* Fallback for FontAwesome if SVG doesn't load or is removed */ .no-records .fas.fa-info-circle { font-size: 3.5rem; margin-bottom: 20px; color: var(--coral-pink); opacity: 0.8; } .no-records p { font-size: 1.15rem; font-family: var(--font-body); font-weight: 600; color: var(--text-dark); line-height: 1.6; }