/* College Alumni Portal - Front-end & Admin Styles */

:root{
	--cap-primary:#1e3a5f;
	--cap-accent:#c8963e;
	--cap-bg:#f7f8fa;
	--cap-border:#e1e4e8;
	--cap-text:#2b2b2b;
	--cap-success:#2e7d32;
	--cap-warning:#b26a00;
	--cap-danger:#c62828;
}

.cap-form-wrap, .cap-directory-wrap, .cap-events-list, .cap-notices-list,
.cap-achievements-grid, .cap-contribute-wrap, .cap-feedback-wrap,
.cap-mentor-directory, .cap-gallery-albums {
	max-width: 900px;
	margin: 0 auto;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--cap-text);
}

.cap-form-wrap h2, .cap-directory-wrap h2, .cap-mentor-directory h2 {
	color: var(--cap-primary);
	border-bottom: 3px solid var(--cap-accent);
	padding-bottom: 10px;
	margin-bottom: 20px;
}

.cap-form { background:#fff; border:1px solid var(--cap-border); border-radius:8px; padding:24px; }
.cap-row { margin-bottom: 16px; }
.cap-row label { display:block; font-weight:600; margin-bottom:6px; font-size:14px; }
.cap-row input[type=text], .cap-row input[type=email], .cap-row input[type=password],
.cap-row input[type=number], .cap-row input[type=url], .cap-row input[type=date],
.cap-row input[type=datetime-local], .cap-row select, .cap-row textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--cap-border);
	border-radius: 5px;
	font-size: 14px;
	box-sizing: border-box;
}
.cap-row textarea { resize: vertical; }
.cap-row-half { display:flex; gap:16px; }
.cap-row-half > div { flex:1; }

.cap-btn, .wrap .cap-btn {
	background: var(--cap-primary);
	color: #fff;
	border: none;
	padding: 12px 26px;
	border-radius: 5px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background .2s ease;
}
.cap-btn:hover { background: #16283f; color:#fff; }

.cap-form-message { margin-bottom: 12px; }
.cap-form-message.success { color: var(--cap-success); font-weight:600; }
.cap-form-message.error { color: var(--cap-danger); font-weight:600; }

.cap-notice { background:#eef4fb; border-left:4px solid var(--cap-primary); padding:14px 18px; border-radius:4px; }
.cap-notice-warning { background:#fff8e6; border-left-color: var(--cap-warning); }

.cap-photo-row { display:flex; align-items:center; gap:14px; }
.cap-photo-placeholder {
	width:70px; height:70px; border-radius:50%; background: var(--cap-accent);
	color:#fff; display:flex; align-items:center; justify-content:center;
	font-size: 26px; font-weight:700;
}

/* Directory */
.cap-directory-filters { display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 20px; }
.cap-directory-filters input, .cap-directory-filters select { padding:10px; border:1px solid var(--cap-border); border-radius:5px; }
.cap-directory-results { display:grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap:18px; }
.cap-alumni-card, .cap-mentor-card {
	background:#fff; border:1px solid var(--cap-border); border-radius:8px; padding:18px; text-align:center;
}
.cap-alumni-photo, .cap-mentor-photo { margin-bottom:10px; display:flex; justify-content:center; }
.cap-alumni-card h3, .cap-mentor-card h3 { margin:6px 0 4px; font-size:16px; color: var(--cap-primary); }
.cap-alumni-batch, .cap-alumni-job, .cap-alumni-loc, .cap-mentor-job, .cap-mentor-expertise, .cap-mentor-availability { font-size:13px; margin:2px 0; color:#555; }
.cap-linkedin-link { display:inline-block; margin-top:8px; font-size:13px; color: var(--cap-primary); text-decoration:none; font-weight:600; }
.cap-pagination { text-align:center; margin-top:20px; }
.cap-pagination button { margin:0 4px; padding:6px 12px; border:1px solid var(--cap-border); background:#fff; border-radius:4px; cursor:pointer; }
.cap-pagination button.active { background: var(--cap-primary); color:#fff; }

/* Achievements */
.cap-achievements-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap:20px; }
.cap-achievement-card { background:#fff; border:1px solid var(--cap-border); border-radius:8px; overflow:hidden; }
.cap-card-thumb img { width:100%; height:160px; object-fit:cover; }
.cap-achievement-card h3 { padding: 12px 14px 0; color: var(--cap-primary); }
.cap-card-terms { padding: 0 14px; font-size:12px; color: var(--cap-accent); font-weight:600; }
.cap-card-excerpt { padding: 8px 14px 16px; font-size:14px; }

/* Events */
.cap-event-card { display:flex; gap:16px; background:#fff; border:1px solid var(--cap-border); border-radius:8px; padding:16px; margin-bottom:14px; }
.cap-event-date { background: var(--cap-primary); color:#fff; border-radius:6px; padding:10px; text-align:center; min-width:60px; height:fit-content; }
.cap-event-day { display:block; font-size:22px; font-weight:700; }
.cap-event-month { display:block; font-size:12px; text-transform:uppercase; }
.cap-event-meta { font-size:13px; color:#666; }

/* Notices */
.cap-notice-item { border-bottom:1px solid var(--cap-border); padding:14px 0; }
.cap-notice-date { font-size:12px; color: var(--cap-accent); font-weight:600; }

/* Contribute showcase */
.cap-contribution-showcase { background:#fbf6ec; border:1px solid #f0e3c4; border-radius:8px; padding:16px; margin-bottom:20px; }

/* Mentor grid */
.cap-mentor-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(230px,1fr)); gap:18px; }
.cap-request-mentor-btn { margin-top:10px; }

.cap-modal { position:fixed; inset:0; background:rgba(0,0,0,.5); display:flex; align-items:center; justify-content:center; z-index:9999; }
.cap-modal-inner { background:#fff; padding:24px; border-radius:8px; max-width:480px; width:90%; position:relative; }
.cap-modal-close { position:absolute; top:10px; right:14px; background:none; border:none; font-size:24px; cursor:pointer; }

/* Gallery */
.cap-album-card { background:#fff; border:1px solid var(--cap-border); border-radius:8px; padding:18px; margin-bottom:20px; }
.cap-album-date { font-weight:400; font-size:14px; color:#777; }
.cap-album-photos { display:grid; grid-template-columns: repeat(auto-fill, minmax(120px,1fr)); gap:8px; margin-top:10px; }
.cap-album-photos img { width:100%; height:100px; object-fit:cover; border-radius:5px; }
.cap-doc-link { display:inline-block; margin:6px 10px 0 0; font-size:13px; color: var(--cap-primary); text-decoration:none; }

/* Admin */
.cap-admin-wrap .cap-stat-grid { display:grid; grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); gap:14px; margin: 20px 0; }
.cap-stat-box { background:#fff; border:1px solid var(--cap-border); border-left:4px solid var(--cap-primary); border-radius:6px; padding:16px; }
.cap-stat-box.cap-stat-warning { border-left-color: var(--cap-warning); }
.cap-stat-num { display:block; font-size:28px; font-weight:700; color: var(--cap-primary); }
.cap-stat-label { font-size:13px; color:#666; }
.cap-status-badge { padding:3px 10px; border-radius:12px; font-size:12px; font-weight:600; }
.cap-status-pending, .cap-status-new { background:#fff3cd; color:#856404; }
.cap-status-approved, .cap-status-resolved { background:#d4edda; color:#155724; }
.cap-status-rejected { background:#f8d7da; color:#721c24; }

.cap-admin-columns { display:flex; gap:24px; align-items:flex-start; margin-top:16px; }
.cap-admin-col-form { flex:0 0 380px; background:#fff; border:1px solid var(--cap-border); border-radius:6px; padding:16px 20px; }
.cap-admin-col-list { flex:1; min-width:0; }
@media (max-width: 960px) { .cap-admin-columns { flex-direction: column; } .cap-admin-col-form { flex-basis:auto; width:100%; box-sizing:border-box; } }

.cap-alumni-extra { font-size:12px; color:#555; }

.cap-loading { text-align:center; color:#888; padding:20px; }

@media (max-width: 600px) {
	.cap-row-half { flex-direction: column; gap: 0; }
}

/* ---------------- New feature modules ---------------- */

/* Verified badge */
.cap-verified-badge { display:inline-block; font-size:11px; font-weight:700; color: var(--cap-success); background:#e7f5e8; padding:2px 8px; border-radius:10px; vertical-align:middle; }
.cap-view-profile-link { display:inline-block; margin-top:6px; font-size:13px; color: var(--cap-primary); text-decoration:none; font-weight:600; }

/* Chapters */
.cap-chapters-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap:18px; margin-top:16px; }
.cap-chapter-card { background:#fff; border:1px solid var(--cap-border); border-radius:8px; padding:18px; }
.cap-chapter-card h3 { margin-top:0; color: var(--cap-primary); }

/* Job board */
.cap-jobs-list { margin-top:18px; }
.cap-job-card { background:#fff; border:1px solid var(--cap-border); border-radius:8px; padding:18px; margin-bottom:14px; }
.cap-job-card h3 { margin:0 0 6px; color: var(--cap-primary); }
.cap-job-meta { font-size:13px; color:#666; margin-bottom:10px; }
.cap-job-desc { font-size:14px; margin-bottom:12px; }

/* Donations */
.cap-amount-presets { display:flex; gap:8px; margin-bottom:8px; }
.cap-amount-preset { padding:8px 16px; border:1px solid var(--cap-border); background:#fff; border-radius:20px; cursor:pointer; font-weight:600; }
.cap-amount-preset:hover { background: var(--cap-bg); }

/* Network & Inbox */
.cap-network-requests, .cap-network-row { margin-bottom:10px; }
.cap-network-row { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--cap-border); border-radius:8px; padding:10px 14px; }
.cap-network-row .cap-alumni-photo, .cap-inbox-contact .cap-alumni-photo { width:44px; height:44px; }
.cap-network-row .cap-photo-placeholder, .cap-inbox-contact .cap-photo-placeholder { width:44px; height:44px; font-size:16px; }
.cap-network-row span { flex:1; font-weight:600; }
.cap-inbox-columns { display:flex; gap:0; border:1px solid var(--cap-border); border-radius:8px; overflow:hidden; background:#fff; min-height:420px; }
.cap-inbox-list { width:240px; border-right:1px solid var(--cap-border); overflow-y:auto; max-height:520px; }
.cap-inbox-contact { display:flex; align-items:center; gap:10px; padding:12px 14px; cursor:pointer; border-bottom:1px solid var(--cap-border); }
.cap-inbox-contact:hover, .cap-inbox-contact.active { background: var(--cap-bg); }
.cap-inbox-thread { flex:1; display:flex; flex-direction:column; padding:16px; }
.cap-inbox-messages { flex:1; overflow-y:auto; max-height:380px; margin-bottom:12px; }
.cap-msg-bubble { max-width:70%; padding:8px 12px; border-radius:12px; margin-bottom:8px; font-size:14px; }
.cap-msg-mine { background: var(--cap-primary); color:#fff; margin-left:auto; border-bottom-right-radius:2px; }
.cap-msg-theirs { background: var(--cap-bg); border-bottom-left-radius:2px; }
.cap-msg-time { display:block; font-size:10px; opacity:.7; margin-top:2px; }
#cap-inbox-send-form textarea { width:100%; box-sizing:border-box; border:1px solid var(--cap-border); border-radius:6px; padding:8px; margin-bottom:8px; }

/* Skills & endorsements */
.cap-skills-wrap { margin-top:20px; }
.cap-skills-list { display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.cap-skill-chip { background: var(--cap-bg); border:1px solid var(--cap-border); border-radius:16px; padding:6px 12px; font-size:13px; display:inline-flex; align-items:center; gap:6px; }
.cap-skill-count { background: var(--cap-primary); color:#fff; border-radius:10px; padding:1px 7px; font-size:11px; }
.cap-skill-endorsed { color: var(--cap-success); font-style:normal; font-size:12px; }
.cap-endorse-btn { background:none; border:none; color: var(--cap-primary); font-weight:600; font-size:12px; cursor:pointer; padding:0; }

/* Digital ID card */
.cap-idcard { width:340px; border:2px solid var(--cap-primary); border-radius:10px; overflow:hidden; background:#fff; margin:0 auto; }
.cap-idcard-header { background: var(--cap-primary); color:#fff; padding:10px 16px; display:flex; flex-direction:column; }
.cap-idcard-header strong { font-size:15px; }
.cap-idcard-header span { font-size:11px; opacity:.85; }
.cap-idcard-body { display:flex; gap:12px; padding:16px; align-items:center; }
.cap-idcard-photo img, .cap-idcard-placeholder { width:80px; height:80px; border-radius:8px; object-fit:cover; }
.cap-idcard-details h3 { margin:0 0 4px; font-size:15px; }
.cap-idcard-details p { margin:2px 0; font-size:12px; color:#555; }
.cap-idcard-code { font-family:monospace; font-weight:700; letter-spacing:1px; color: var(--cap-primary); }
.cap-idcard-footer { background: var(--cap-bg); padding:8px 16px; font-size:10px; text-align:center; color:#777; }
@media print { body * { visibility:hidden; } .cap-idcard, .cap-idcard * { visibility:visible; } .cap-idcard { position:absolute; top:0; left:0; } }

/* Public alumni profile */
.cap-public-profile-header { display:flex; gap:20px; align-items:flex-start; margin-bottom:16px; }
.cap-public-profile-header .cap-alumni-photo img, .cap-profile-photo-lg { width:130px; height:130px; border-radius:10px; object-fit:cover; }
.cap-public-profile-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; align-items:center; }
.cap-btn-secondary { background:#fff; color: var(--cap-primary); border:1px solid var(--cap-primary); }
.cap-btn-secondary:hover { background: var(--cap-bg); color: var(--cap-primary); }
.cap-public-profile-bio, .cap-public-profile-mentor { background:#fff; border:1px solid var(--cap-border); border-radius:8px; padding:16px; margin-top:14px; }
