.sched-cal-controls {display:flex; align-items:center; gap:.5rem; margin:1rem 0;}
.sched-nav {padding:.4rem .6rem; border:1px solid #000000; border-radius:.5rem; background:#fff; cursor:pointer;}
.sched-month-label {font-weight:700; min-width:10ch; text-align:center;}
.sched-today {margin-left:auto; padding:.4rem .6rem; border:1px solid #000000; border-radius:.5rem; background:#ffffe0; cursor:pointer;}
.sched-month-jump {padding:.4rem .6rem; border:1px solid #000000; border-radius:.5rem;}
.sched-cal-grid {display:grid; grid-template-columns:repeat(7,1fr); gap:0.1rem; border:1px solid #000000; border-radius:.75rem; padding:.5rem; background:#fff;}
.sched-cal-grid .dow {font-weight:600; font-size:.85rem; text-align:center; color:#666; padding:.3rem 0;}
.sched-cal-grid .cell {border:1px solid #000000; border-radius:0; min-height:72px; padding:.3rem; display:flex; flex-direction:column; gap:0.25rem; cursor:pointer;}
.sched-cal-grid .cell .num {font-weight:600; font-size:.9rem;}
.sched-cal-grid .cell .dots {display:flex; gap:.2rem; flex-wrap:wrap;}
.sched-cal-grid .cell .dot {width:.5rem; height:.5rem; border-radius:50%; background:#666;}
.sched-cal-grid .cell.selected {outline:2px solid #8ab4f8; outline-offset:1px;}
.sched-chips {display:flex; flex-wrap:wrap; gap:.5rem; margin:.8rem 0; display:none;}
.chip {padding:.3rem .6rem; border:1px solid #000000; border-radius:999px; background:#fff; cursor:pointer;}
.sched-search {flex:1 1 14rem; min-width:14rem; padding:.5rem .6rem; border:1px solid #000000; border-radius:.5rem;}
.sched-list {display:grid; gap:.6rem; margin-top:.6rem;}
.event {border:1px solid #000000; border-radius:.75rem; padding:.75rem; background:#fff;}
.event-line {display:grid; grid-template-columns:140px 160px 1fr 160px; gap:.6rem; align-items:center;}
.event-date {font-weight:700;}
.event-actions {margin-top:.5rem; display:flex; gap:.4rem; flex-wrap:wrap;}
.event-actions .btn {padding:.4rem .6rem; border:1px solid #000000; border-radius:.5rem; background:#b3ffd1; cursor:pointer;}
.event-details {margin-top:.4rem;}
.sched-auth {margin-top:1rem; padding:.75rem; border:1px dashed #ddd; border-radius:.75rem; background:#fcfcff;}
.sched-auth-form {display:flex; gap:.5rem; margin-top:.4rem;}
@media (max-width:767px) {.event-line {grid-template-columns:1fr; gap:.25rem;} .sched-cal-grid {grid-template-columns:repeat(7,minmax(32px,1fr));} .event-place {opacity:.9;}}

/* Tab styles for Register/Login modal */
.modal-tabs {display:flex; gap:1rem; margin-bottom:1.5rem; border-bottom:2px solid #e0e0e0;}
.modal-tab {padding:0.75rem 1.5rem; background:none; border:none; color:#666; font-size:1rem; font-weight:600; cursor:pointer; position:relative; transition:color 0.3s ease;}
.modal-tab.active {color:#1e4d8b;}
.modal-tab.active::after {content:''; position:absolute; bottom:-2px; left:0; right:0; height:3px; background:#1e4d8b;}
.modal-tab:hover {color:#1e4d8b;}

/* Auth message styling */
.auth-message {color:#ff6b35; font-weight:600; text-align:center; padding:1rem; margin:1rem 0; background:rgba(255,107,53,0.1); border-radius:8px;}

/* Hide elements based on auth state */
.guest-only {display:block;}
.auth-only {display:none;}
body.authenticated .guest-only {display:none;}
body.authenticated .auth-only {display:block;}

/* Form groups that should be hidden in login mode */
.register-only {display:block;}
.modal-body.login-mode .register-only {display:none;}

.admin-only {background:#f0f0f0 !important; border:1px solid #999 !important;}

.attendees-modal {position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); display:flex; justify-content:center; align-items:center; z-index:10000;}
.attendees-modal-content {background:white; border-radius:10px; width:90%; max-width:600px; max-height:80vh; display:flex; flex-direction:column;}
.attendees-modal-header {padding:20px; border-bottom:1px solid #ddd; display:flex; justify-content:space-between; align-items:center;}
.attendees-modal-header h3 {margin:0; color:#1e4d8b;}
.attendees-close {font-size:28px; cursor:pointer; color:#999;}
.attendees-close:hover {color:#333;}
.attendees-modal-body {padding:20px; overflow-y:auto;}
.attendee-count {font-size:18px; font-weight:bold; margin-bottom:20px; color:#1e4d8b;}
.attendee-card {border:1px solid #ddd; border-radius:8px; padding:15px; margin-bottom:15px; background:#f9f9f9;}
.attendee-name {font-size:18px; font-weight:bold; margin-bottom:10px; color:#333;}
.attendee-details {display:grid; grid-template-columns:1fr 1fr; gap:8px; font-size:14px; color:#666;}

.survey-modal {position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); display:flex; justify-content:center; align-items:center; z-index:10001; overflow-y:auto; padding:20px;}
.survey-modal-content {background:white; border-radius:10px; width:100%; max-width:600px; max-height:90vh; overflow-y:auto;}
.survey-modal-header {padding:20px; border-bottom:1px solid #ddd; display:flex; justify-content:space-between; align-items:center;}
.survey-modal-header h3 {margin:0; color:#1e4d8b;}
.survey-modal-subheader {padding:0 20px; margin-top:10px;}
.survey-modal-subheader p {margin:5px 0;}
.survey-close {font-size:28px; cursor:pointer; color:#999;}
.survey-close:hover {color:#333;}
.survey-form {padding:20px;}
.survey-user-info {background:#f5f5f5; padding:15px; border-radius:8px; margin-bottom:20px;}
.survey-form .form-row {display:grid; grid-template-columns:1fr 1fr; gap:15px;}
.survey-form .form-group {margin-bottom:20px;}
.survey-form label {display:block; margin-bottom:8px; font-weight:600; color:#333;}
.survey-form input, .survey-form select, .survey-form textarea {width:100%; padding:10px; border:1px solid #ddd; border-radius:5px; font-size:14px;}
.survey-form input[readonly] {background:#f9f9f9; color:#666;}
.survey-form textarea {resize:vertical; font-family:inherit;}
.survey-form .form-actions {display:flex; gap:10px; justify-content:flex-end; margin-top:20px;}
.survey-form .btn-submit {padding:10px 20px; background:#1e4d8b; color:white; border:none; border-radius:5px; cursor:pointer; font-weight:600;}
.survey-form .btn-submit:hover {background:#163a6b;}
.survey-form .btn-submit:disabled {background:#999; cursor:not-allowed;}
.survey-form .btn-cancel {padding:10px 20px; background:#f5f5f5; color:#333; border:1px solid #ddd; border-radius:5px; cursor:pointer;}
.survey-form .btn-cancel:hover {background:#e0e0e0;}

@media (max-width:600px) {.survey-form .form-row {grid-template-columns:1fr;}}
@media (max-width:600px) {.attendee-details {grid-template-columns:1fr;}}

.sched-legend {display:flex;gap:.5rem;margin:.3rem 0 .6rem 0;align-items:center;}
.sched-legend .leg {display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.15rem .5rem;font-size:.85rem;}
.sched-legend .leg::before {content:"";width:.75rem;height:.75rem;border:1px solid #000;border-radius:2px;display:inline-block;background:#fff;}
.sched-legend .leg.online::before {background:#e6f2ff;}
.sched-legend .leg.venue::before {background:#e8ffe6;}

.sched-cal-grid .cell {position:relative;}
.sched-cal-grid .cell.today {background:#ffffe0;}
.sched-cal-grid .cell.selected {outline:2px solid #000;outline-offset:1px;background:#f3f3f3;}
.sched-cal-grid .cell.online {box-shadow:inset 0 0 0 3px #e6f2ff;background-color: #e6f2ff;}
.sched-cal-grid .cell.venue {box-shadow:inset 0 0 0 3px #e8ffe6;background-color: #e8ffe6;}
.sched-cal-grid .cell .mini-title {font-size:.68rem;line-height:1.1;margin-top:.15rem;max-height:2.2em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}

.chip.active {background:#000;color:#fff;border-color:#000;}
.chip:focus,.sched-nav:focus,.sched-today:focus, .event-actions .btn:focus {outline:2px solid #000;outline-offset:2px;}
.sched-cal-grid .cell:focus {outline:2px solid #000;outline-offset:2px;}

.gate-modal {position:fixed;inset:0;display:grid;place-items:center;z-index:1000;}
.gate-backdrop {position:absolute;inset:0;background:rgba(0,0,0,.45);}
.gate-dialog {position:relative;background:#fff;border:2px solid #000;border-radius:.75rem;max-width:520px;width:92vw;padding:1rem;}
.gate-x {position:absolute;top:.25rem;right:.5rem;border:1px solid #000;background:#fff;border-radius:.5rem;padding:.1rem .5rem;cursor:pointer;}
.gate-title {margin:.25rem 0 .25rem 0;}
.gate-sub {margin:0 0 .6rem 0;color:#333;}
.gate-tabs {display:flex;gap:.4rem;margin:.4rem 0 .8rem 0;}
.gate-tab {border:1px solid #000;background:#fff;border-radius:999px;padding:.3rem .6rem;cursor:pointer;}
.gate-tab.active {background:#000;color:#fff;}
.gate-pane .row {margin:.4rem 0;}
.gate-pane input {width:100%;padding:.5rem .6rem;border:1px solid #000;border-radius:.5rem;}
.gate-status {margin-top:.6rem;color:#111;min-height:1.2em;}
.btn.link {background:transparent;border:none;text-decoration:underline;cursor:pointer;padding:.2rem .3rem;}

.gate-modal[hidden] {display:none !important;}

.btn {display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .8rem;border:2px solid #000;border-radius:.6rem;background:#ffe500;cursor:pointer;font-weight:700;}
.btn:hover {transform:translateY(-1px);}
.btn:active {transform:translateY(0);}
.btn .ico {width:1.1rem;height:1.1rem;display:inline-block;}
.btn.secondary {background:#d0f0ff;}
.btn.ghost {background:#fff;}

/* Video Modal Styles */
.video-modal {position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.8); display:flex; justify-content:center; align-items:center; z-index:10002; padding:20px;}
.video-modal-content {background:white; border-radius:10px; width:100%; max-width:900px; max-height:90vh; display:flex; flex-direction:column; position:relative;}
.video-modal-header {padding:15px 20px; border-bottom:1px solid #ddd; display:flex; justify-content:space-between; align-items:center; background:#f8f9fa; border-radius:10px 10px 0 0;}
.video-modal-header h3 {margin:0; color:#1e4d8b; font-size:1.2rem;}
.video-modal-close {font-size:24px; cursor:pointer; color:#666; background:none; border:none; padding:5px; border-radius:50%; transition:background-color 0.2s;}
.video-modal-close:hover {background-color:#e0e0e0;}
.video-modal-body {padding:0; position:relative; background:#000; border-radius:0 0 10px 10px;}
.video-container {position:relative; width:100%; height:0; padding-bottom:56.25%; overflow:hidden;}
.video-container iframe {position:absolute; top:0; left:0; width:100%; height:100%; border:none;}
.video-error {padding:40px; text-align:center; color:#666;}
.video-loading {padding:40px; text-align:center; color:#666; background:#f8f9fa;}

/* Mobile optimizations for video modal */
@media (max-width:768px) {
  .video-modal {padding:10px; align-items:flex-start; padding-top:20px;}
  .video-modal-content {max-width:100%; max-height:95vh;}
  .video-modal-header {padding:10px 15px;}
  .video-modal-header h3 {font-size:1rem;}
  .video-container {padding-bottom:56.25%;}
}

@media (max-width:480px) {
  .video-modal {padding:5px; padding-top:10px;}
  .video-modal-header {padding:8px 12px;}
  .video-modal-header h3 {font-size:0.9rem; line-height:1.2;}
}