body {
    background: linear-gradient(135deg, #f9fafb 0%, #e9edf3 100%);
    font-family: 'Poppins', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #1e293b;
    margin: 0;
    padding: 0;
    line-height: 1.6;
}

.container {
    max-width: 1150px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
}

/* Card & Section Uniformity */
.jumbotron,
.agenda-table-card {
    background: #ffffff;
    border-radius: 15px;
    box-shadow: 0 8px 30px rgba(60, 60, 80, 0.08);
    margin-bottom: 2.3rem;
    transition: box-shadow 0.25s, transform 0.18s;
}

.jumbotron {
    min-height: 260px;
    padding: 2.3rem 2rem;
    border: 2px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.jumbotron:hover {
    box-shadow: 0 14px 36px 0 rgba(41, 50, 68, 0.08);
    transform: translateY(-2px) scale(1.01);
}
.jumbotron-guest {
    border-color: #9d10b9;
}
.jumbotron-moderator {
    border-color: #a0abb9;
}

/* Typography */
h1, .welcome-title {
    color: #1e293b;
    font-weight: 800;
    font-size: 2.18rem;
    letter-spacing: 0.03em;
    margin-bottom: .3em;
}
h2, h3, h4, h5, h6 {
    color: #334155;
    font-weight: 700;
    margin-bottom: .55rem;
}
.text-muted {
    color: #94a3b8 !important;
}
.text-secondary {
    color: #64748b !important;
}

/* Buttons - Modern Vibrant */
.btn {
    font-weight: 600;
    font-size: 1rem;
    border-radius: 9px;
    padding: 0.68rem 1.35rem;
    cursor: pointer;
    border: none;
    transition: box-shadow 0.18s, background 0.18s, color 0.18s;
}

/* Primary (Cool Blue) */
.btn-primary {
    background: linear-gradient(90deg, #3b82f6 0%, #1d4ed8 100%);
    color: #fff;
    box-shadow: 0 3px 10px rgba(59, 130, 246, 0.2);
}
.btn-primary:hover {
    background: linear-gradient(90deg, #2563eb 0%, #1e40af 100%);
}

/* Guest (Fresh Green) */
.btn-guest {
    background: linear-gradient(90deg, #d33496 0%, #b910b0 100%);
    color: #fff;
    box-shadow: 0 3px 8px rgba(16, 185, 129, 0.2);
}
.btn-guest:hover {
    background: linear-gradient(90deg, #059669 0%, #047857 100%);
}

/* Moderator (Neutral Gray) */
.btn-moderator {
    background: linear-gradient(90deg, #9ca3af 0%, #4b5563 100%);
    color: #fff;
}
.btn-moderator:hover {
    background: linear-gradient(90deg, #6b7280 0%, #374151 100%);
    color: #fff;
}

/* Modal */
.modal-content {
    border-radius: 12px;
    box-shadow: 0 10px 34px rgba(40, 54, 71, 0.08);
}
.modal-title {
    color: #1e293b;
    font-weight: 700;
}
.modal-header {
    border-bottom: 1px solid #e4e7ec;
}
.form-control:focus {
    box-shadow: 0 0 0 0.22rem #3b82f640;
    border-color: #3b82f6;
}

/* Agenda Table */
.agenda-header {
    background: #f1f5f9;
    color: #1e293b;
    font-weight: 800;
    font-size: 1.33rem;
    padding: 12px 20px;
    border-bottom: 2px solid #e2e8f0;
}
.agenda-table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
}
.agenda-table th, .agenda-table td {
    padding: 10px 18px;
    border-bottom: 1px solid #e5e7eb;
}
.agenda-table th {
    background: #1e3a8a;
    color: #f8fafc;
    font-weight: 700;
    font-size: 0.97rem;
    border-bottom: 2px solid #3b82f6;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.agenda-table td:first-child {
    font-weight: 700;
    color: #10b981;
    width: 90px;
    font-size: 0.93rem;
}
.agenda-table td:nth-child(2) strong {
    display: block;
    margin-bottom: 3px;
    color: #334155;
    font-weight: 700;
}
.agenda-table td:nth-child(2) small {
    display: block;
    color: #64748b;
    font-size: 0.91rem;
}
.agenda-table td:nth-child(2) small:before {
    /* content: "Speaker: "; */
    color: #94a3b8;
}
.agenda-table tbody tr:hover {
    background: #f8fafc;
}
.agenda-table tbody tr:last-child td {
    border-bottom: none;
}

/* Responsive */
@media (max-width: 992px) {
    .jumbotron { min-height: 190px; padding: 1.1rem; }
    .agenda-table-card { padding: 0.2rem; }
}
@media (max-width: 768px) {
    .container { padding: 0 0.4rem; }
    .jumbotron { padding: 0.7rem 0.3rem; }
    .agenda-header { font-size: 1rem; padding: 7px 8px;}
    .agenda-table th, .agenda-table td { padding: 6px 5px; font-size: .91rem;}
    .agenda-table td, .agenda-table th { display: block; width: 100% !important;}
    .agenda-table th:first-child,
    .agenda-table th:nth-child(2) { display: none; }
}
@media (max-width: 576px) {
    .jumbotron { min-height: auto; }
    h1, .welcome-title { font-size: 1.3rem; }
    .btn { width: 100%; }
    .agenda-header { font-size: 1.1rem; }
}
