* { box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; margin: 0; padding: 20px; background: #f5f5f5; } /* Modal Overlay */ .session-modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); z-index: 10000; animation: fadeIn 0.3s ease; } .session-modal-overlay.active { display: flex; align-items: center; justify-content: center; } /* Modal Container */ .session-modal { background: white; border-radius: 16px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); max-width: 440px; width: 90%; overflow: hidden; animation: slideUp 0.3s ease; } /* Modal Header */ .session-modal-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 24px; color: white; text-align: center; } .session-modal-icon { width: 56px; height: 56px; background: rgba(255, 255, 255, 0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; animation: pulse 2s ease infinite; } .session-modal-icon svg { width: 32px; height: 32px; stroke: white; fill: none; stroke-width: 2; } .session-modal-title { font-size: 24px; font-weight: 600; margin: 0 0 8px; } .session-modal-subtitle { font-size: 14px; opacity: 0.95; margin: 0; } /* Modal Body */ .session-modal-body { padding: 32px 24px; text-align: center; } .session-modal-message { color: #333; font-size: 16px; line-height: 1.6; margin: 0 0 24px; } /* Countdown Timer */ .session-countdown { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 24px 0; padding: 20px; background: #f8f9fa; border-radius: 12px; } .countdown-label { font-size: 14px; color: #666; font-weight: 500; } .countdown-time { font-size: 32px; font-weight: 700; color: #667eea; font-variant-numeric: tabular-nums; min-width: 80px; } .countdown-time.warning { color: #f59e0b; } .countdown-time.critical { color: #ef4444; animation: shake 0.5s ease; } /* Progress Bar */ .session-progress { width: 100%; height: 4px; background: #e5e7eb; border-radius: 2px; overflow: hidden; margin-bottom: 24px; } .session-progress-bar { height: 100%; background: linear-gradient(90deg, #667eea 0%, #764ba2 100%); border-radius: 2px; transition: width 1s linear; } /* Modal Actions */ .session-modal-actions { display: flex; gap: 12px; } .session-btn { flex: 1; padding: 14px 24px; border: none; border-radius: 8px; font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; font-family: inherit; } .session-btn-primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; } .session-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4); } .session-btn-secondary { background: #f3f4f6; color: #6b7280; } .session-btn-secondary:hover { background: #e5e7eb; } /* Animations */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { transform: translateY(30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }